remove media scan and file views
This commit is contained in:
parent
6c7e5895de
commit
0d6a0929b9
46 changed files with 4 additions and 2026 deletions
|
|
@ -1,169 +0,0 @@
|
|||
package com.kabouzeid.gramophone.dialogs;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.media.MediaScannerConnection;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.misc.UpdateToastMediaScannerCompletionListener;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivity.folders.FoldersFragment;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Aidan Follestad (afollestad), modified by Karim Abou Zeid
|
||||
*/
|
||||
public class ScanMediaFolderChooserDialog extends DialogFragment implements MaterialDialog.ListCallback {
|
||||
|
||||
String initialPath = PreferenceUtil.getInstance(getContext()).getStartDirectory().getAbsolutePath();
|
||||
private File parentFolder;
|
||||
private File[] parentContents;
|
||||
private boolean canGoUp = false;
|
||||
|
||||
public static ScanMediaFolderChooserDialog create() {
|
||||
return new ScanMediaFolderChooserDialog();
|
||||
}
|
||||
|
||||
private static void scanPaths(@NonNull WeakReference<Activity> activityWeakReference, @NonNull Context applicationContext, @Nullable String[] toBeScanned) {
|
||||
Activity activity = activityWeakReference.get();
|
||||
if (toBeScanned == null || toBeScanned.length < 1) {
|
||||
Toast.makeText(applicationContext, R.string.nothing_to_scan, Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
MediaScannerConnection.scanFile(applicationContext, toBeScanned, null, activity != null ? new UpdateToastMediaScannerCompletionListener(activity, toBeScanned) : null);
|
||||
}
|
||||
}
|
||||
|
||||
private String[] getContentsArray() {
|
||||
if (parentContents == null) {
|
||||
if (canGoUp) {
|
||||
return new String[]{".."};
|
||||
}
|
||||
return new String[]{};
|
||||
}
|
||||
String[] results = new String[parentContents.length + (canGoUp ? 1 : 0)];
|
||||
if (canGoUp) {
|
||||
results[0] = "..";
|
||||
}
|
||||
for (int i = 0; i < parentContents.length; i++) {
|
||||
results[canGoUp ? i + 1 : i] = parentContents[i].getName();
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
private File[] listFiles() {
|
||||
File[] contents = parentFolder.listFiles();
|
||||
List<File> results = new ArrayList<>();
|
||||
if (contents != null) {
|
||||
for (File fi : contents) {
|
||||
if (fi.isDirectory()) {
|
||||
results.add(fi);
|
||||
}
|
||||
}
|
||||
Collections.sort(results, new FolderSorter());
|
||||
return results.toArray(new File[results.size()]);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||
&& ActivityCompat.checkSelfPermission(
|
||||
getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE)
|
||||
!= PackageManager.PERMISSION_GRANTED) {
|
||||
return new MaterialDialog.Builder(getActivity())
|
||||
.title(R.string.md_error_label)
|
||||
.content(R.string.md_storage_perm_error)
|
||||
.positiveText(android.R.string.ok)
|
||||
.build();
|
||||
}
|
||||
if (savedInstanceState == null) {
|
||||
savedInstanceState = new Bundle();
|
||||
}
|
||||
if (!savedInstanceState.containsKey("current_path")) {
|
||||
savedInstanceState.putString("current_path", initialPath);
|
||||
}
|
||||
parentFolder = new File(savedInstanceState.getString("current_path", File.pathSeparator));
|
||||
checkIfCanGoUp();
|
||||
parentContents = listFiles();
|
||||
MaterialDialog.Builder builder =
|
||||
new MaterialDialog.Builder(getActivity())
|
||||
.title(parentFolder.getAbsolutePath())
|
||||
.items((CharSequence[]) getContentsArray())
|
||||
.itemsCallback(this)
|
||||
.autoDismiss(false)
|
||||
.onPositive((dialog, which) -> {
|
||||
final Context applicationContext = getActivity().getApplicationContext();
|
||||
final WeakReference<Activity> activityWeakReference = new WeakReference<>(getActivity());
|
||||
dismiss();
|
||||
new FoldersFragment.ArrayListPathsAsyncTask(getActivity(), paths -> scanPaths(activityWeakReference, applicationContext, paths)).execute(new FoldersFragment.ArrayListPathsAsyncTask.LoadingInfo(parentFolder, FoldersFragment.AUDIO_FILE_FILTER));
|
||||
})
|
||||
.onNegative((materialDialog, dialogAction) -> dismiss())
|
||||
.positiveText(R.string.action_scan_directory)
|
||||
.negativeText(android.R.string.cancel);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSelection(MaterialDialog materialDialog, View view, int i, CharSequence s) {
|
||||
if (canGoUp && i == 0) {
|
||||
parentFolder = parentFolder.getParentFile();
|
||||
if (parentFolder.getAbsolutePath().equals("/storage/emulated")) {
|
||||
parentFolder = parentFolder.getParentFile();
|
||||
}
|
||||
checkIfCanGoUp();
|
||||
} else {
|
||||
parentFolder = parentContents[canGoUp ? i - 1 : i];
|
||||
canGoUp = true;
|
||||
if (parentFolder.getAbsolutePath().equals("/storage/emulated")) {
|
||||
parentFolder = Environment.getExternalStorageDirectory();
|
||||
}
|
||||
}
|
||||
reload();
|
||||
}
|
||||
|
||||
private void checkIfCanGoUp() {
|
||||
canGoUp = parentFolder.getParent() != null;
|
||||
}
|
||||
|
||||
private void reload() {
|
||||
parentContents = listFiles();
|
||||
MaterialDialog dialog = (MaterialDialog) getDialog();
|
||||
dialog.setTitle(parentFolder.getAbsolutePath());
|
||||
dialog.setItems((CharSequence[]) getContentsArray());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
outState.putString("current_path", parentFolder.getAbsolutePath());
|
||||
}
|
||||
|
||||
private static class FolderSorter implements Comparator<File> {
|
||||
|
||||
@Override
|
||||
public int compare(File lhs, File rhs) {
|
||||
return lhs.getName().compareTo(rhs.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
package com.kabouzeid.gramophone.misc;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.media.MediaScannerConnection;
|
||||
import android.net.Uri;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class UpdateToastMediaScannerCompletionListener implements MediaScannerConnection.OnScanCompletedListener {
|
||||
private int scanned = 0;
|
||||
private int failed = 0;
|
||||
|
||||
private final String[] toBeScanned;
|
||||
|
||||
private final String scannedFiles;
|
||||
private final String couldNotScanFiles;
|
||||
|
||||
private Toast toast;
|
||||
private final WeakReference<Activity> activityWeakReference;
|
||||
|
||||
@SuppressLint("ShowToast")
|
||||
public UpdateToastMediaScannerCompletionListener(Activity activity, String[] toBeScanned) {
|
||||
this.toBeScanned = toBeScanned;
|
||||
scannedFiles = activity.getString(R.string.scanned_files);
|
||||
couldNotScanFiles = activity.getString(R.string.could_not_scan_files);
|
||||
toast = Toast.makeText(activity.getApplicationContext(), "", Toast.LENGTH_SHORT);
|
||||
activityWeakReference = new WeakReference<>(activity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScanCompleted(final String path, final Uri uri) {
|
||||
Activity activity = activityWeakReference.get();
|
||||
if (activity != null) {
|
||||
activity.runOnUiThread(() -> {
|
||||
if (uri == null) {
|
||||
failed++;
|
||||
} else {
|
||||
scanned++;
|
||||
}
|
||||
String text = " " + String.format(scannedFiles, scanned, toBeScanned.length) + (failed > 0 ? " " + String.format(couldNotScanFiles, failed) : "");
|
||||
toast.setText(text);
|
||||
toast.show();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -18,7 +18,6 @@ import android.view.View;
|
|||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
|
||||
|
|
@ -27,7 +26,6 @@ import com.kabouzeid.appthemehelper.util.ATHUtil;
|
|||
import com.kabouzeid.appthemehelper.util.NavigationViewUtil;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.dialogs.ScanMediaFolderChooserDialog;
|
||||
import com.kabouzeid.gramophone.glide.SongGlideRequest;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.SearchQueryHelper;
|
||||
|
|
@ -37,10 +35,8 @@ import com.kabouzeid.gramophone.loader.PlaylistSongLoader;
|
|||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.service.MusicService;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivity.folders.FoldersFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.LibraryFragment;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtil;
|
||||
|
||||
import com.sothree.slidinguppanel.SlidingUpPanelLayout;
|
||||
|
||||
|
|
@ -51,12 +47,8 @@ import butterknife.BindView;
|
|||
import butterknife.ButterKnife;
|
||||
|
||||
public class MainActivity extends AbsSlidingMusicPanelActivity {
|
||||
|
||||
public static final String TAG = MainActivity.class.getSimpleName();
|
||||
|
||||
private static final int LIBRARY = 0;
|
||||
private static final int FOLDERS = 1;
|
||||
|
||||
@BindView(R.id.navigation_view)
|
||||
NavigationView navigationView;
|
||||
@BindView(R.id.drawer_layout)
|
||||
|
|
@ -81,31 +73,12 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
|
|||
setUpDrawerLayout();
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
setMusicChooser(PreferenceUtil.getInstance(this).getLastMusicChooser());
|
||||
setCurrentFragment(LibraryFragment.newInstance());
|
||||
} else {
|
||||
restoreCurrentFragment();
|
||||
}
|
||||
}
|
||||
|
||||
private void setMusicChooser(int key) {
|
||||
if (!App.isProVersion() && key == FOLDERS) {
|
||||
Toast.makeText(this, R.string.folder_view_is_a_pro_feature, Toast.LENGTH_LONG).show();
|
||||
key = LIBRARY;
|
||||
}
|
||||
|
||||
PreferenceUtil.getInstance(this).setLastMusicChooser(key);
|
||||
switch (key) {
|
||||
case LIBRARY:
|
||||
navigationView.setCheckedItem(R.id.nav_library);
|
||||
setCurrentFragment(LibraryFragment.newInstance());
|
||||
break;
|
||||
case FOLDERS:
|
||||
navigationView.setCheckedItem(R.id.nav_folders);
|
||||
setCurrentFragment(FoldersFragment.newInstance(this));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void setCurrentFragment(@SuppressWarnings("NullableProblems") Fragment fragment) {
|
||||
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment, null).commit();
|
||||
currentFragment = (MainActivityFragmentCallbacks) fragment;
|
||||
|
|
@ -134,20 +107,12 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
|
|||
drawerLayout.closeDrawers();
|
||||
switch (menuItem.getItemId()) {
|
||||
case R.id.nav_library:
|
||||
new Handler().postDelayed(() -> setMusicChooser(LIBRARY), 200);
|
||||
break;
|
||||
case R.id.nav_folders:
|
||||
new Handler().postDelayed(() -> setMusicChooser(FOLDERS), 200);
|
||||
navigationView.setCheckedItem(R.id.nav_library);
|
||||
setCurrentFragment(LibraryFragment.newInstance());
|
||||
break;
|
||||
case R.id.buy_pro:
|
||||
new Handler().postDelayed(() -> startActivity(new Intent(MainActivity.this, PurchaseActivity.class)), 200);
|
||||
break;
|
||||
case R.id.action_scan:
|
||||
new Handler().postDelayed(() -> {
|
||||
ScanMediaFolderChooserDialog dialog = ScanMediaFolderChooserDialog.create();
|
||||
dialog.show(getSupportFragmentManager(), "SCAN_MEDIA_FOLDER_CHOOSER");
|
||||
}, 200);
|
||||
break;
|
||||
case R.id.nav_settings:
|
||||
new Handler().postDelayed(() -> startActivity(new Intent(MainActivity.this, SettingsActivity.class)), 200);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ public class SplashActivity extends AbsBaseActivity {
|
|||
connectionManager.Connect(credentialProvider.GetCredentials().getServers().get(0), new Response<ConnectionResult>() {
|
||||
@Override
|
||||
public void onResponse(ConnectionResult result) {
|
||||
if (result.getState() != ConnectionState.SignedIn) return;
|
||||
//if (result.getState() != ConnectionState.SignedIn) return;
|
||||
App.setApiClient(result.getApiClient());
|
||||
context.startActivity(new Intent(context, MainActivity.class));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,691 +0,0 @@
|
|||
package com.kabouzeid.gramophone.ui.fragments.mainactivity.folders;
|
||||
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.media.MediaScannerConnection;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.webkit.MimeTypeMap;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.Loader;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.afollestad.materialcab.MaterialCab;
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||
import com.kabouzeid.appthemehelper.common.ATHToolbarActivity;
|
||||
import com.kabouzeid.appthemehelper.util.ToolbarContentTintHelper;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.SongFileAdapter;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.menu.SongMenuHelper;
|
||||
import com.kabouzeid.gramophone.helper.menu.SongsMenuHelper;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.interfaces.LoaderIds;
|
||||
import com.kabouzeid.gramophone.misc.DialogAsyncTask;
|
||||
import com.kabouzeid.gramophone.misc.UpdateToastMediaScannerCompletionListener;
|
||||
import com.kabouzeid.gramophone.misc.WrappedAsyncTaskLoader;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.MainActivity;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivity.AbsMainActivityFragment;
|
||||
import com.kabouzeid.gramophone.util.FileUtil;
|
||||
import com.kabouzeid.gramophone.util.PhonographColorUtil;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtil;
|
||||
import com.kabouzeid.gramophone.util.ViewUtil;
|
||||
import com.kabouzeid.gramophone.views.BreadCrumbLayout;
|
||||
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.Unbinder;
|
||||
|
||||
public class FoldersFragment extends AbsMainActivityFragment implements MainActivity.MainActivityFragmentCallbacks, CabHolder, BreadCrumbLayout.SelectionCallback, SongFileAdapter.Callbacks, AppBarLayout.OnOffsetChangedListener, LoaderManager.LoaderCallbacks<List<File>> {
|
||||
|
||||
private static final int LOADER_ID = LoaderIds.FOLDERS_FRAGMENT;
|
||||
|
||||
protected static final String PATH = "path";
|
||||
protected static final String CRUMBS = "crumbs";
|
||||
|
||||
private Unbinder unbinder;
|
||||
|
||||
@BindView(R.id.coordinator_layout)
|
||||
CoordinatorLayout coordinatorLayout;
|
||||
@BindView(R.id.container)
|
||||
View container;
|
||||
@BindView(android.R.id.empty)
|
||||
View empty;
|
||||
@BindView(R.id.toolbar)
|
||||
Toolbar toolbar;
|
||||
@BindView(R.id.bread_crumbs)
|
||||
BreadCrumbLayout breadCrumbs;
|
||||
@BindView(R.id.appbar)
|
||||
AppBarLayout appbar;
|
||||
@BindView(R.id.recycler_view)
|
||||
FastScrollRecyclerView recyclerView;
|
||||
|
||||
private SongFileAdapter adapter;
|
||||
private MaterialCab cab;
|
||||
|
||||
public FoldersFragment() {
|
||||
}
|
||||
|
||||
public static FoldersFragment newInstance(Context context) {
|
||||
return newInstance(PreferenceUtil.getInstance(context).getStartDirectory());
|
||||
}
|
||||
|
||||
public static FoldersFragment newInstance(File directory) {
|
||||
FoldersFragment frag = new FoldersFragment();
|
||||
Bundle b = new Bundle();
|
||||
b.putSerializable(PATH, directory);
|
||||
frag.setArguments(b);
|
||||
return frag;
|
||||
}
|
||||
|
||||
public void setCrumb(BreadCrumbLayout.Crumb crumb, boolean addToHistory) {
|
||||
if (crumb == null) return;
|
||||
saveScrollPosition();
|
||||
breadCrumbs.setActiveOrAdd(crumb, false);
|
||||
if (addToHistory) {
|
||||
breadCrumbs.addHistory(crumb);
|
||||
}
|
||||
getLoaderManager().restartLoader(LOADER_ID, null, this);
|
||||
}
|
||||
|
||||
private void saveScrollPosition() {
|
||||
BreadCrumbLayout.Crumb crumb = getActiveCrumb();
|
||||
if (crumb != null) {
|
||||
crumb.setScrollPosition(((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition());
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private BreadCrumbLayout.Crumb getActiveCrumb() {
|
||||
return breadCrumbs != null && breadCrumbs.size() > 0 ? breadCrumbs.getCrumb(breadCrumbs.getActiveIndex()) : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(@NonNull Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
outState.putParcelable(CRUMBS, breadCrumbs.getStateWrapper());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
if (savedInstanceState == null) {
|
||||
setCrumb(new BreadCrumbLayout.Crumb(FileUtil.safeGetCanonicalFile((File) getArguments().getSerializable(PATH))), true);
|
||||
} else {
|
||||
breadCrumbs.restoreFromStateWrapper(savedInstanceState.getParcelable(CRUMBS));
|
||||
getLoaderManager().initLoader(LOADER_ID, null, this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_folder, container, false);
|
||||
unbinder = ButterKnife.bind(this, view);
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
getMainActivity().setStatusbarColorAuto();
|
||||
getMainActivity().setNavigationbarColorAuto();
|
||||
getMainActivity().setTaskDescriptionColorAuto();
|
||||
|
||||
setUpAppbarColor();
|
||||
setUpToolbar();
|
||||
setUpBreadCrumbs();
|
||||
setUpRecyclerView();
|
||||
setUpAdapter();
|
||||
}
|
||||
|
||||
private void setUpAppbarColor() {
|
||||
int primaryColor = ThemeStore.primaryColor(getActivity());
|
||||
appbar.setBackgroundColor(primaryColor);
|
||||
toolbar.setBackgroundColor(primaryColor);
|
||||
breadCrumbs.setBackgroundColor(primaryColor);
|
||||
breadCrumbs.setActivatedContentColor(ToolbarContentTintHelper.toolbarTitleColor(getActivity(), primaryColor));
|
||||
breadCrumbs.setDeactivatedContentColor(ToolbarContentTintHelper.toolbarSubtitleColor(getActivity(), primaryColor));
|
||||
}
|
||||
|
||||
private void setUpToolbar() {
|
||||
toolbar.setNavigationIcon(R.drawable.ic_menu_white_24dp);
|
||||
getActivity().setTitle(R.string.app_name);
|
||||
getMainActivity().setSupportActionBar(toolbar);
|
||||
}
|
||||
|
||||
private void setUpBreadCrumbs() {
|
||||
breadCrumbs.setCallback(this);
|
||||
}
|
||||
|
||||
private void setUpRecyclerView() {
|
||||
ViewUtil.setUpFastScrollRecyclerViewColor(getActivity(), recyclerView, ThemeStore.accentColor(getActivity()));
|
||||
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
|
||||
appbar.addOnOffsetChangedListener(this);
|
||||
}
|
||||
|
||||
private void setUpAdapter() {
|
||||
adapter = new SongFileAdapter(getMainActivity(), new LinkedList<>(), R.layout.item_list, this, this);
|
||||
adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
|
||||
@Override
|
||||
public void onChanged() {
|
||||
super.onChanged();
|
||||
checkIsEmpty();
|
||||
}
|
||||
});
|
||||
recyclerView.setAdapter(adapter);
|
||||
checkIsEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
saveScrollPosition();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
appbar.removeOnOffsetChangedListener(this);
|
||||
unbinder.unbind();
|
||||
super.onDestroyView();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleBackPress() {
|
||||
if (cab != null && cab.isActive()) {
|
||||
cab.finish();
|
||||
return true;
|
||||
}
|
||||
if (breadCrumbs.popHistory()) {
|
||||
setCrumb(breadCrumbs.lastHistory(), false);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public MaterialCab openCab(int menuRes, MaterialCab.Callback callback) {
|
||||
if (cab != null && cab.isActive()) cab.finish();
|
||||
cab = new MaterialCab(getMainActivity(), R.id.cab_stub)
|
||||
.setMenu(menuRes)
|
||||
.setCloseDrawableRes(R.drawable.ic_close_white_24dp)
|
||||
.setBackgroundColor(PhonographColorUtil.shiftBackgroundColorForLightText(ThemeStore.primaryColor(getActivity())))
|
||||
.start(callback);
|
||||
return cab;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
inflater.inflate(R.menu.menu_folders, menu);
|
||||
ToolbarContentTintHelper.handleOnCreateOptionsMenu(getActivity(), toolbar, menu, ATHToolbarActivity.getToolbarBackgroundColor(toolbar));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareOptionsMenu(Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
ToolbarContentTintHelper.handleOnPrepareOptionsMenu(getActivity(), toolbar);
|
||||
}
|
||||
|
||||
public static final FileFilter AUDIO_FILE_FILTER = file -> !file.isHidden() && (file.isDirectory() ||
|
||||
FileUtil.fileIsMimeType(file, "audio/*", MimeTypeMap.getSingleton()) ||
|
||||
FileUtil.fileIsMimeType(file, "application/ogg", MimeTypeMap.getSingleton()));
|
||||
|
||||
@Override
|
||||
public void onCrumbSelection(BreadCrumbLayout.Crumb crumb, int index) {
|
||||
setCrumb(crumb, true);
|
||||
}
|
||||
|
||||
public static File getDefaultStartDirectory() {
|
||||
File musicDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
|
||||
File startFolder;
|
||||
if (musicDir.exists() && musicDir.isDirectory()) {
|
||||
startFolder = musicDir;
|
||||
} else {
|
||||
File externalStorage = Environment.getExternalStorageDirectory();
|
||||
if (externalStorage.exists() && externalStorage.isDirectory()) {
|
||||
startFolder = externalStorage;
|
||||
} else {
|
||||
startFolder = new File("/"); // root
|
||||
}
|
||||
}
|
||||
return startFolder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_go_to_start_directory:
|
||||
setCrumb(new BreadCrumbLayout.Crumb(FileUtil.safeGetCanonicalFile(PreferenceUtil.getInstance(getActivity()).getStartDirectory())), true);
|
||||
return true;
|
||||
case R.id.action_scan:
|
||||
BreadCrumbLayout.Crumb crumb = getActiveCrumb();
|
||||
if (crumb != null) {
|
||||
new ArrayListPathsAsyncTask(getActivity(), this::scanPaths).execute(new ArrayListPathsAsyncTask.LoadingInfo(crumb.getFile(), AUDIO_FILE_FILTER));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFileSelected(File file) {
|
||||
final File canonicalFile = FileUtil.safeGetCanonicalFile(file); // important as we compare the path value later
|
||||
if (canonicalFile.isDirectory()) {
|
||||
setCrumb(new BreadCrumbLayout.Crumb(canonicalFile), true);
|
||||
} else {
|
||||
FileFilter fileFilter = pathname -> !pathname.isDirectory() && AUDIO_FILE_FILTER.accept(pathname);
|
||||
new ListSongsAsyncTask(getActivity(), null, (songs, extra) -> {
|
||||
int startIndex = -1;
|
||||
for (int i = 0; i < songs.size(); i++) {
|
||||
if (canonicalFile.getPath().equals(songs.get(i).data)) {
|
||||
startIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (startIndex > -1) {
|
||||
MusicPlayerRemote.openQueue(songs, startIndex, true);
|
||||
} else {
|
||||
Snackbar.make(coordinatorLayout, Html.fromHtml(String.format(getString(R.string.not_listed_in_media_store), canonicalFile.getName())), Snackbar.LENGTH_LONG)
|
||||
.setAction(R.string.action_scan, v -> scanPaths(new String[]{canonicalFile.getPath()}))
|
||||
.setActionTextColor(ThemeStore.accentColor(getActivity()))
|
||||
.show();
|
||||
}
|
||||
}).execute(new ListSongsAsyncTask.LoadingInfo(toList(canonicalFile.getParentFile()), fileFilter, getFileComparator()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMultipleItemAction(MenuItem item, List<File> files) {
|
||||
final int itemId = item.getItemId();
|
||||
new ListSongsAsyncTask(getActivity(), null, (songs, extra) -> {
|
||||
if (!songs.isEmpty()) {
|
||||
SongsMenuHelper.handleMenuClick(getActivity(), songs, itemId);
|
||||
}
|
||||
if (songs.size() != files.size()) {
|
||||
Snackbar.make(coordinatorLayout, R.string.some_files_are_not_listed_in_the_media_store, Snackbar.LENGTH_LONG)
|
||||
.setAction(R.string.action_scan, v -> {
|
||||
String[] paths = new String[files.size()];
|
||||
for (int i = 0; i < files.size(); i++) {
|
||||
paths[i] = FileUtil.safeGetCanonicalPath(files.get(i));
|
||||
}
|
||||
scanPaths(paths);
|
||||
})
|
||||
.setActionTextColor(ThemeStore.accentColor(getActivity()))
|
||||
.show();
|
||||
}
|
||||
}).execute(new ListSongsAsyncTask.LoadingInfo(files, AUDIO_FILE_FILTER, getFileComparator()));
|
||||
}
|
||||
|
||||
private List<File> toList(File file) {
|
||||
List<File> files = new ArrayList<>(1);
|
||||
files.add(file);
|
||||
return files;
|
||||
}
|
||||
|
||||
Comparator<File> fileComparator = (lhs, rhs) -> {
|
||||
if (lhs.isDirectory() && !rhs.isDirectory()) {
|
||||
return -1;
|
||||
} else if (!lhs.isDirectory() && rhs.isDirectory()) {
|
||||
return 1;
|
||||
} else {
|
||||
return lhs.getName().compareToIgnoreCase
|
||||
(rhs.getName());
|
||||
}
|
||||
};
|
||||
|
||||
private Comparator<File> getFileComparator() {
|
||||
return fileComparator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFileMenuClicked(final File file, View view) {
|
||||
PopupMenu popupMenu = new PopupMenu(getActivity(), view);
|
||||
if (file.isDirectory()) {
|
||||
popupMenu.inflate(R.menu.menu_item_directory);
|
||||
popupMenu.setOnMenuItemClickListener(item -> {
|
||||
final int itemId = item.getItemId();
|
||||
switch (itemId) {
|
||||
case R.id.action_play_next:
|
||||
case R.id.action_add_to_current_playing:
|
||||
case R.id.action_add_to_playlist:
|
||||
case R.id.action_delete_from_device:
|
||||
new ListSongsAsyncTask(getActivity(), null, (songs, extra) -> {
|
||||
if (!songs.isEmpty()) {
|
||||
SongsMenuHelper.handleMenuClick(getActivity(), songs, itemId);
|
||||
}
|
||||
}).execute(new ListSongsAsyncTask.LoadingInfo(toList(file), AUDIO_FILE_FILTER, getFileComparator()));
|
||||
return true;
|
||||
case R.id.action_set_as_start_directory:
|
||||
PreferenceUtil.getInstance(getActivity()).setStartDirectory(file);
|
||||
Toast.makeText(getActivity(), String.format(getString(R.string.new_start_directory), file.getPath()), Toast.LENGTH_SHORT).show();
|
||||
return true;
|
||||
case R.id.action_scan:
|
||||
new ArrayListPathsAsyncTask(getActivity(), this::scanPaths).execute(new ArrayListPathsAsyncTask.LoadingInfo(file, AUDIO_FILE_FILTER));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
} else {
|
||||
popupMenu.inflate(R.menu.menu_item_file);
|
||||
popupMenu.setOnMenuItemClickListener(item -> {
|
||||
final int itemId = item.getItemId();
|
||||
switch (itemId) {
|
||||
case R.id.action_play_next:
|
||||
case R.id.action_add_to_current_playing:
|
||||
case R.id.action_add_to_playlist:
|
||||
case R.id.action_go_to_album:
|
||||
case R.id.action_go_to_artist:
|
||||
case R.id.action_share:
|
||||
case R.id.action_details:
|
||||
case R.id.action_set_as_ringtone:
|
||||
case R.id.action_delete_from_device:
|
||||
new ListSongsAsyncTask(getActivity(), null, (songs, extra) -> {
|
||||
if (!songs.isEmpty()) {
|
||||
SongMenuHelper.handleMenuClick(getActivity(), songs.get(0), itemId);
|
||||
} else {
|
||||
Snackbar.make(coordinatorLayout, Html.fromHtml(String.format(getString(R.string.not_listed_in_media_store), file.getName())), Snackbar.LENGTH_LONG)
|
||||
.setAction(R.string.action_scan, v -> scanPaths(new String[]{FileUtil.safeGetCanonicalPath(file)}))
|
||||
.setActionTextColor(ThemeStore.accentColor(getActivity()))
|
||||
.show();
|
||||
}
|
||||
}).execute(new ListSongsAsyncTask.LoadingInfo(toList(file), AUDIO_FILE_FILTER, getFileComparator()));
|
||||
return true;
|
||||
case R.id.action_scan:
|
||||
scanPaths(new String[]{FileUtil.safeGetCanonicalPath(file)});
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
popupMenu.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
|
||||
container.setPadding(container.getPaddingLeft(), container.getPaddingTop(), container.getPaddingRight(), appbar.getTotalScrollRange() + verticalOffset);
|
||||
}
|
||||
|
||||
private void checkIsEmpty() {
|
||||
if (empty != null) {
|
||||
empty.setVisibility(adapter == null || adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private void scanPaths(@Nullable String[] toBeScanned) {
|
||||
if (getActivity() == null) return;
|
||||
if (toBeScanned == null || toBeScanned.length < 1) {
|
||||
Toast.makeText(getActivity(), R.string.nothing_to_scan, Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
MediaScannerConnection.scanFile(getActivity().getApplicationContext(), toBeScanned, null, new UpdateToastMediaScannerCompletionListener(getActivity(), toBeScanned));
|
||||
}
|
||||
}
|
||||
|
||||
private void updateAdapter(@NonNull List<File> files) {
|
||||
adapter.swapDataSet(files);
|
||||
BreadCrumbLayout.Crumb crumb = getActiveCrumb();
|
||||
if (crumb != null && recyclerView != null) {
|
||||
((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(crumb.getScrollPosition(), 0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Loader<List<File>> onCreateLoader(int id, Bundle args) {
|
||||
return new AsyncFileLoader(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(@NonNull Loader<List<File>> loader, List<File> data) {
|
||||
updateAdapter(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoaderReset(@NonNull Loader<List<File>> loader) {
|
||||
updateAdapter(new LinkedList<>());
|
||||
}
|
||||
|
||||
private static class AsyncFileLoader extends WrappedAsyncTaskLoader<List<File>> {
|
||||
private WeakReference<FoldersFragment> fragmentWeakReference;
|
||||
|
||||
public AsyncFileLoader(FoldersFragment foldersFragment) {
|
||||
super(foldersFragment.getActivity());
|
||||
fragmentWeakReference = new WeakReference<>(foldersFragment);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<File> loadInBackground() {
|
||||
FoldersFragment foldersFragment = fragmentWeakReference.get();
|
||||
File directory = null;
|
||||
if (foldersFragment != null) {
|
||||
BreadCrumbLayout.Crumb crumb = foldersFragment.getActiveCrumb();
|
||||
if (crumb != null) {
|
||||
directory = crumb.getFile();
|
||||
}
|
||||
}
|
||||
if (directory != null) {
|
||||
List<File> files = FileUtil.listFiles(directory, AUDIO_FILE_FILTER);
|
||||
Collections.sort(files, foldersFragment.getFileComparator());
|
||||
return files;
|
||||
} else {
|
||||
return new LinkedList<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class ListSongsAsyncTask extends ListingFilesDialogAsyncTask<ListSongsAsyncTask.LoadingInfo, Void, List<Song>> {
|
||||
private WeakReference<Context> contextWeakReference;
|
||||
private WeakReference<OnSongsListedCallback> callbackWeakReference;
|
||||
private final Object extra;
|
||||
|
||||
public ListSongsAsyncTask(Context context, Object extra, OnSongsListedCallback callback) {
|
||||
super(context, 500);
|
||||
this.extra = extra;
|
||||
contextWeakReference = new WeakReference<>(context);
|
||||
callbackWeakReference = new WeakReference<>(callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
checkCallbackReference();
|
||||
checkContextReference();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Song> doInBackground(LoadingInfo... params) {
|
||||
try {
|
||||
LoadingInfo info = params[0];
|
||||
List<File> files = FileUtil.listFilesDeep(info.files, info.fileFilter);
|
||||
|
||||
if (isCancelled() || checkContextReference() == null || checkCallbackReference() == null)
|
||||
return null;
|
||||
|
||||
Collections.sort(files, info.fileComparator);
|
||||
|
||||
Context context = checkContextReference();
|
||||
if (isCancelled() || context == null || checkCallbackReference() == null)
|
||||
return null;
|
||||
|
||||
return FileUtil.matchFilesWithMediaStore(context, files);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
cancel(false);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(List<Song> songs) {
|
||||
super.onPostExecute(songs);
|
||||
OnSongsListedCallback callback = checkCallbackReference();
|
||||
if (songs != null && callback != null)
|
||||
callback.onSongsListed(songs, extra);
|
||||
}
|
||||
|
||||
private Context checkContextReference() {
|
||||
Context context = contextWeakReference.get();
|
||||
if (context == null) {
|
||||
cancel(false);
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
private OnSongsListedCallback checkCallbackReference() {
|
||||
OnSongsListedCallback callback = callbackWeakReference.get();
|
||||
if (callback == null) {
|
||||
cancel(false);
|
||||
}
|
||||
return callback;
|
||||
}
|
||||
|
||||
public static class LoadingInfo {
|
||||
public final Comparator<File> fileComparator;
|
||||
public final FileFilter fileFilter;
|
||||
public final List<File> files;
|
||||
|
||||
public LoadingInfo(@NonNull List<File> files, @NonNull FileFilter fileFilter, @NonNull Comparator<File> fileComparator) {
|
||||
this.fileComparator = fileComparator;
|
||||
this.fileFilter = fileFilter;
|
||||
this.files = files;
|
||||
}
|
||||
}
|
||||
|
||||
public interface OnSongsListedCallback {
|
||||
void onSongsListed(@NonNull List<Song> songs, Object extra);
|
||||
}
|
||||
}
|
||||
|
||||
public static class ArrayListPathsAsyncTask extends ListingFilesDialogAsyncTask<ArrayListPathsAsyncTask.LoadingInfo, String, String[]> {
|
||||
private WeakReference<OnPathsListedCallback> onPathsListedCallbackWeakReference;
|
||||
|
||||
public ArrayListPathsAsyncTask(Context context, OnPathsListedCallback callback) {
|
||||
super(context, 500);
|
||||
onPathsListedCallbackWeakReference = new WeakReference<>(callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
checkCallbackReference();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] doInBackground(LoadingInfo... params) {
|
||||
try {
|
||||
if (isCancelled() || checkCallbackReference() == null) return null;
|
||||
|
||||
LoadingInfo info = params[0];
|
||||
|
||||
final String[] paths;
|
||||
|
||||
if (info.file.isDirectory()) {
|
||||
List<File> files = FileUtil.listFilesDeep(info.file, info.fileFilter);
|
||||
|
||||
if (isCancelled() || checkCallbackReference() == null) return null;
|
||||
|
||||
paths = new String[files.size()];
|
||||
for (int i = 0; i < files.size(); i++) {
|
||||
File f = files.get(i);
|
||||
paths[i] = FileUtil.safeGetCanonicalPath(f);
|
||||
|
||||
if (isCancelled() || checkCallbackReference() == null) return null;
|
||||
}
|
||||
} else {
|
||||
paths = new String[1];
|
||||
paths[0] = FileUtil.safeGetCanonicalPath(info.file);
|
||||
}
|
||||
|
||||
return paths;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
cancel(false);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String[] paths) {
|
||||
super.onPostExecute(paths);
|
||||
OnPathsListedCallback callback = checkCallbackReference();
|
||||
if (callback != null && paths != null) {
|
||||
callback.onPathsListed(paths);
|
||||
}
|
||||
}
|
||||
|
||||
private OnPathsListedCallback checkCallbackReference() {
|
||||
OnPathsListedCallback callback = onPathsListedCallbackWeakReference.get();
|
||||
if (callback == null) {
|
||||
cancel(false);
|
||||
}
|
||||
return callback;
|
||||
}
|
||||
|
||||
public static class LoadingInfo {
|
||||
public final File file;
|
||||
public final FileFilter fileFilter;
|
||||
|
||||
public LoadingInfo(File file, FileFilter fileFilter) {
|
||||
this.file = file;
|
||||
this.fileFilter = fileFilter;
|
||||
}
|
||||
}
|
||||
|
||||
public interface OnPathsListedCallback {
|
||||
void onPathsListed(@NonNull String[] paths);
|
||||
}
|
||||
}
|
||||
|
||||
private static abstract class ListingFilesDialogAsyncTask<Params, Progress, Result> extends DialogAsyncTask<Params, Progress, Result> {
|
||||
public ListingFilesDialogAsyncTask(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public ListingFilesDialogAsyncTask(Context context, int showDelay) {
|
||||
super(context, showDelay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Dialog createDialog(@NonNull Context context) {
|
||||
return new MaterialDialog.Builder(context)
|
||||
.title(R.string.listing_files)
|
||||
.progress(true, 0)
|
||||
.progressIndeterminateStyle(true)
|
||||
.cancelListener(dialog -> cancel(false))
|
||||
.dismissListener(dialog -> cancel(false))
|
||||
.negativeText(android.R.string.cancel)
|
||||
.onNegative((dialog, which) -> cancel(false))
|
||||
.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -16,7 +16,6 @@ import com.google.gson.reflect.TypeToken;
|
|||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.SortOrder;
|
||||
import com.kabouzeid.gramophone.model.CategoryInfo;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivity.folders.FoldersFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.player.NowPlayingScreen;
|
||||
|
||||
import java.io.File;
|
||||
|
|
@ -28,7 +27,6 @@ public final class PreferenceUtil {
|
|||
public static final String GENERAL_THEME = "general_theme";
|
||||
public static final String REMEMBER_LAST_TAB = "remember_last_tab";
|
||||
public static final String LAST_PAGE = "last_start_page";
|
||||
public static final String LAST_MUSIC_CHOOSER = "last_music_chooser";
|
||||
public static final String NOW_PLAYING_SCREEN_ID = "now_playing_screen_id";
|
||||
|
||||
public static final String ARTIST_SORT_ORDER = "artist_sort_order";
|
||||
|
|
@ -76,8 +74,6 @@ public final class PreferenceUtil {
|
|||
|
||||
public static final String AUTO_DOWNLOAD_IMAGES_POLICY = "auto_download_images_policy";
|
||||
|
||||
public static final String START_DIRECTORY = "start_directory";
|
||||
|
||||
public static final String SYNCHRONIZED_LYRICS_SHOW = "synchronized_lyrics_show";
|
||||
|
||||
public static final String INITIALIZED_BLACKLIST = "initialized_blacklist";
|
||||
|
|
@ -161,16 +157,6 @@ public final class PreferenceUtil {
|
|||
return mPreferences.getInt(LAST_PAGE, 0);
|
||||
}
|
||||
|
||||
public void setLastMusicChooser(final int value) {
|
||||
final SharedPreferences.Editor editor = mPreferences.edit();
|
||||
editor.putInt(LAST_MUSIC_CHOOSER, value);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public final int getLastMusicChooser() {
|
||||
return mPreferences.getInt(LAST_MUSIC_CHOOSER, 0);
|
||||
}
|
||||
|
||||
public final NowPlayingScreen getNowPlayingScreen() {
|
||||
int id = mPreferences.getInt(NOW_PLAYING_SCREEN_ID, 0);
|
||||
for (NowPlayingScreen nowPlayingScreen : NowPlayingScreen.values()) {
|
||||
|
|
@ -454,16 +440,6 @@ public final class PreferenceUtil {
|
|||
return mPreferences.getString(AUTO_DOWNLOAD_IMAGES_POLICY, "only_wifi");
|
||||
}
|
||||
|
||||
public final File getStartDirectory() {
|
||||
return new File(mPreferences.getString(START_DIRECTORY, FoldersFragment.getDefaultStartDirectory().getPath()));
|
||||
}
|
||||
|
||||
public void setStartDirectory(File file) {
|
||||
final SharedPreferences.Editor editor = mPreferences.edit();
|
||||
editor.putString(START_DIRECTORY, FileUtil.safeGetCanonicalPath(file));
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public final boolean synchronizedLyricsShow() {
|
||||
return mPreferences.getBoolean(SYNCHRONIZED_LYRICS_SHOW, true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,416 +0,0 @@
|
|||
package com.kabouzeid.gramophone.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.os.Build;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.NonNull;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.HorizontalScrollView;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Aidan Follestad (afollestad), modified for Phonograph by Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class BreadCrumbLayout extends HorizontalScrollView implements View.OnClickListener {
|
||||
|
||||
@ColorInt
|
||||
private int contentColorActivated;
|
||||
@ColorInt
|
||||
private int contentColorDeactivated;
|
||||
|
||||
public static class Crumb implements Parcelable {
|
||||
|
||||
public Crumb(File file) {
|
||||
this.file = file;
|
||||
}
|
||||
|
||||
private final File file;
|
||||
private int scrollPos;
|
||||
|
||||
public int getScrollPosition() {
|
||||
return scrollPos;
|
||||
}
|
||||
|
||||
public void setScrollPosition(int scrollY) {
|
||||
this.scrollPos = scrollY;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return file.getPath().equals("/") ? "root" : file.getName();
|
||||
}
|
||||
|
||||
public File getFile() {
|
||||
return file;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
return (o instanceof Crumb) && ((Crumb) o).getFile() != null &&
|
||||
((Crumb) o).getFile().equals(getFile());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Crumb{" +
|
||||
"file=" + file +
|
||||
", scrollPos=" + scrollPos +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeSerializable(this.file);
|
||||
dest.writeInt(this.scrollPos);
|
||||
}
|
||||
|
||||
protected Crumb(Parcel in) {
|
||||
this.file = (File) in.readSerializable();
|
||||
this.scrollPos = in.readInt();
|
||||
}
|
||||
|
||||
public static final Creator<Crumb> CREATOR = new Creator<Crumb>() {
|
||||
@Override
|
||||
public Crumb createFromParcel(Parcel source) {
|
||||
return new Crumb(source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Crumb[] newArray(int size) {
|
||||
return new Crumb[size];
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public interface SelectionCallback {
|
||||
void onCrumbSelection(Crumb crumb, int index);
|
||||
}
|
||||
|
||||
public BreadCrumbLayout(Context context) {
|
||||
super(context);
|
||||
init();
|
||||
}
|
||||
|
||||
public BreadCrumbLayout(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
init();
|
||||
}
|
||||
|
||||
public BreadCrumbLayout(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
init();
|
||||
}
|
||||
|
||||
// Stores currently visible crumbs
|
||||
private List<Crumb> mCrumbs;
|
||||
// Used in setActiveOrAdd() between clearing crumbs and adding the new set, nullified afterwards
|
||||
private List<Crumb> mOldCrumbs;
|
||||
// Stores user's navigation history, like a fragment back stack
|
||||
private List<Crumb> mHistory;
|
||||
|
||||
private LinearLayout mChildFrame;
|
||||
private int mActive;
|
||||
private SelectionCallback mCallback;
|
||||
|
||||
private void init() {
|
||||
contentColorActivated = ThemeStore.textColorPrimary(getContext());
|
||||
contentColorDeactivated = ThemeStore.textColorSecondary(getContext());
|
||||
setMinimumHeight((int) getResources().getDimension(R.dimen.tab_height));
|
||||
setClipToPadding(false);
|
||||
setHorizontalScrollBarEnabled(false);
|
||||
mCrumbs = new ArrayList<>();
|
||||
mHistory = new ArrayList<>();
|
||||
mChildFrame = new LinearLayout(getContext());
|
||||
addView(mChildFrame, new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
||||
}
|
||||
|
||||
public void addHistory(Crumb crumb) {
|
||||
mHistory.add(crumb);
|
||||
}
|
||||
|
||||
public Crumb lastHistory() {
|
||||
if (mHistory.size() == 0) return null;
|
||||
return mHistory.get(mHistory.size() - 1);
|
||||
}
|
||||
|
||||
public boolean popHistory() {
|
||||
if (mHistory.size() == 0) return false;
|
||||
mHistory.remove(mHistory.size() - 1);
|
||||
return mHistory.size() != 0;
|
||||
}
|
||||
|
||||
public int historySize() {
|
||||
return mHistory.size();
|
||||
}
|
||||
|
||||
public void clearHistory() {
|
||||
mHistory.clear();
|
||||
}
|
||||
|
||||
public void reverseHistory() {
|
||||
Collections.reverse(mHistory);
|
||||
}
|
||||
|
||||
public void addCrumb(@NonNull Crumb crumb, boolean refreshLayout) {
|
||||
LinearLayout view = (LinearLayout) LayoutInflater.from(getContext()).inflate(R.layout.bread_crumb, this, false);
|
||||
view.setTag(mCrumbs.size());
|
||||
view.setOnClickListener(this);
|
||||
|
||||
ImageView iv = (ImageView) view.getChildAt(1);
|
||||
if (Build.VERSION.SDK_INT >= 19 && iv.getDrawable() != null) {
|
||||
iv.getDrawable().setAutoMirrored(true);
|
||||
}
|
||||
iv.setVisibility(View.GONE);
|
||||
|
||||
mChildFrame.addView(view, new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
mCrumbs.add(crumb);
|
||||
if (refreshLayout) {
|
||||
mActive = mCrumbs.size() - 1;
|
||||
requestLayout();
|
||||
}
|
||||
invalidateActivatedAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onLayout(boolean changed, int l, int t, int r, int b) {
|
||||
super.onLayout(changed, l, t, r, b);
|
||||
//RTL works fine like this
|
||||
View child = mChildFrame.getChildAt(mActive);
|
||||
if (child != null)
|
||||
smoothScrollTo(child.getLeft(), 0);
|
||||
}
|
||||
|
||||
public Crumb findCrumb(@NonNull File forDir) {
|
||||
for (int i = 0; i < mCrumbs.size(); i++) {
|
||||
if (mCrumbs.get(i).getFile().equals(forDir))
|
||||
return mCrumbs.get(i);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void clearCrumbs() {
|
||||
try {
|
||||
mOldCrumbs = new ArrayList<>(mCrumbs);
|
||||
mCrumbs.clear();
|
||||
mChildFrame.removeAllViews();
|
||||
} catch (IllegalStateException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public Crumb getCrumb(int index) {
|
||||
return mCrumbs.get(index);
|
||||
}
|
||||
|
||||
public void setCallback(SelectionCallback callback) {
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
private boolean setActive(Crumb newActive) {
|
||||
mActive = mCrumbs.indexOf(newActive);
|
||||
invalidateActivatedAll();
|
||||
boolean success = mActive > -1;
|
||||
if (success)
|
||||
requestLayout();
|
||||
return success;
|
||||
}
|
||||
|
||||
void invalidateActivatedAll() {
|
||||
for (int i = 0; i < mCrumbs.size(); i++) {
|
||||
Crumb crumb = mCrumbs.get(i);
|
||||
invalidateActivated(mChildFrame.getChildAt(i), mActive == mCrumbs.indexOf(crumb), false, i < mCrumbs.size() - 1).setText(crumb.getTitle());
|
||||
}
|
||||
}
|
||||
|
||||
void removeCrumbAt(int index) {
|
||||
mCrumbs.remove(index);
|
||||
mChildFrame.removeViewAt(index);
|
||||
}
|
||||
|
||||
public boolean trim(String path, boolean dir) {
|
||||
if (!dir) return false;
|
||||
int index = -1;
|
||||
for (int i = mCrumbs.size() - 1; i >= 0; i--) {
|
||||
File fi = mCrumbs.get(i).getFile();
|
||||
if (fi.getPath().equals(path)) {
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
boolean removedActive = index >= mActive;
|
||||
if (index > -1) {
|
||||
while (index <= mCrumbs.size() - 1)
|
||||
removeCrumbAt(index);
|
||||
if (mChildFrame.getChildCount() > 0) {
|
||||
int lastIndex = mCrumbs.size() - 1;
|
||||
invalidateActivated(mChildFrame.getChildAt(lastIndex), mActive == lastIndex, false, false);
|
||||
}
|
||||
}
|
||||
return removedActive || mCrumbs.size() == 0;
|
||||
}
|
||||
|
||||
public boolean trim(File file) {
|
||||
return trim(file.getPath(), file.isDirectory());
|
||||
}
|
||||
|
||||
void updateIndices() {
|
||||
for (int i = 0; i < mChildFrame.getChildCount(); i++)
|
||||
mChildFrame.getChildAt(i).setTag(i);
|
||||
}
|
||||
|
||||
public void setActiveOrAdd(@NonNull Crumb crumb, boolean forceRecreate) {
|
||||
if (forceRecreate || !setActive(crumb)) {
|
||||
clearCrumbs();
|
||||
final List<File> newPathSet = new ArrayList<>();
|
||||
|
||||
newPathSet.add(0, crumb.getFile());
|
||||
|
||||
File p = crumb.getFile();
|
||||
while ((p = p.getParentFile()) != null) {
|
||||
newPathSet.add(0, p);
|
||||
}
|
||||
|
||||
for (int index = 0; index < newPathSet.size(); index++) {
|
||||
final File fi = newPathSet.get(index);
|
||||
crumb = new Crumb(fi);
|
||||
|
||||
// Restore scroll positions saved before clearing
|
||||
if (mOldCrumbs != null) {
|
||||
for (Iterator<Crumb> iterator = mOldCrumbs.iterator(); iterator.hasNext(); ) {
|
||||
Crumb old = iterator.next();
|
||||
if (old.equals(crumb)) {
|
||||
crumb.setScrollPosition(old.getScrollPosition());
|
||||
iterator.remove(); // minimize number of linear passes by removing un-used crumbs from history
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
addCrumb(crumb, true);
|
||||
}
|
||||
|
||||
// History no longer needed
|
||||
mOldCrumbs = null;
|
||||
}
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return mCrumbs.size();
|
||||
}
|
||||
|
||||
private TextView invalidateActivated(View view, final boolean isActive, final boolean noArrowIfAlone, final boolean allowArrowVisible) {
|
||||
int contentColor = isActive ? contentColorActivated : contentColorDeactivated;
|
||||
LinearLayout child = (LinearLayout) view;
|
||||
TextView tv = (TextView) child.getChildAt(0);
|
||||
tv.setTextColor(contentColor);
|
||||
ImageView iv = (ImageView) child.getChildAt(1);
|
||||
iv.setColorFilter(contentColor, PorterDuff.Mode.SRC_IN);
|
||||
if (noArrowIfAlone && getChildCount() == 1)
|
||||
iv.setVisibility(View.GONE);
|
||||
else if (allowArrowVisible)
|
||||
iv.setVisibility(View.VISIBLE);
|
||||
else
|
||||
iv.setVisibility(View.GONE);
|
||||
return tv;
|
||||
}
|
||||
|
||||
public int getActiveIndex() {
|
||||
return mActive;
|
||||
}
|
||||
|
||||
public void setActivatedContentColor(@ColorInt int contentColorActivated) {
|
||||
this.contentColorActivated = contentColorActivated;
|
||||
}
|
||||
|
||||
public void setDeactivatedContentColor(@ColorInt int contentColorDeactivated) {
|
||||
this.contentColorDeactivated = contentColorDeactivated;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (mCallback != null) {
|
||||
int index = (Integer) v.getTag();
|
||||
mCallback.onCrumbSelection(mCrumbs.get(index), index);
|
||||
}
|
||||
}
|
||||
|
||||
public static class SavedStateWrapper implements Parcelable {
|
||||
|
||||
public final int mActive;
|
||||
public final List<Crumb> mCrumbs;
|
||||
public final int mVisibility;
|
||||
|
||||
public SavedStateWrapper(BreadCrumbLayout view) {
|
||||
mActive = view.mActive;
|
||||
mCrumbs = view.mCrumbs;
|
||||
mVisibility = view.getVisibility();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeInt(this.mActive);
|
||||
dest.writeTypedList(mCrumbs);
|
||||
dest.writeInt(this.mVisibility);
|
||||
}
|
||||
|
||||
protected SavedStateWrapper(Parcel in) {
|
||||
this.mActive = in.readInt();
|
||||
this.mCrumbs = in.createTypedArrayList(Crumb.CREATOR);
|
||||
this.mVisibility = in.readInt();
|
||||
}
|
||||
|
||||
public static final Creator<SavedStateWrapper> CREATOR = new Creator<SavedStateWrapper>() {
|
||||
public SavedStateWrapper createFromParcel(Parcel source) {
|
||||
return new SavedStateWrapper(source);
|
||||
}
|
||||
|
||||
public SavedStateWrapper[] newArray(int size) {
|
||||
return new SavedStateWrapper[size];
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public SavedStateWrapper getStateWrapper() {
|
||||
return new SavedStateWrapper(this);
|
||||
}
|
||||
|
||||
public void restoreFromStateWrapper(SavedStateWrapper mSavedState) {
|
||||
if (mSavedState != null) {
|
||||
mActive = mSavedState.mActive;
|
||||
for (Crumb c : mSavedState.mCrumbs) {
|
||||
addCrumb(c, false);
|
||||
}
|
||||
requestLayout();
|
||||
setVisibility(mSavedState.mVisibility);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout 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:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?rectSelector"
|
||||
android:gravity="center_vertical|start"
|
||||
android:minHeight="@dimen/tab_height"
|
||||
android:orientation="horizontal"
|
||||
android:paddingEnd="4dp"
|
||||
android:paddingLeft="12dp"
|
||||
android:paddingRight="4dp"
|
||||
android:paddingStart="12dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingRight="8dp"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="#fff"
|
||||
android:textSize="14sp"
|
||||
tools:ignore="RtlSymmetry,UnusedAttribute"
|
||||
tools:text="Storage"
|
||||
tools:textColor="#000" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:scaleType="fitXY"
|
||||
android:visibility="gone"
|
||||
app:srcCompat="@drawable/ic_keyboard_arrow_right_white_24dp"
|
||||
tools:tint="#000"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</LinearLayout>
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout 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/coordinator_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".ui.fragments.mainactivity.folders.FoldersFragment">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/appbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:ignore="UnusedAttribute">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_scrollFlags="scroll|enterAlways">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
style="@style/Toolbar"
|
||||
android:elevation="0dp"
|
||||
tools:ignore="UnusedAttribute">
|
||||
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
<ViewStub
|
||||
android:id="@+id/cab_stub"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?android:attr/actionBarSize" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<com.kabouzeid.gramophone.views.BreadCrumbLayout
|
||||
android:id="@+id/bread_crumbs"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/tab_height"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingLeft="60dp"
|
||||
android:paddingRight="8dp"
|
||||
android:paddingStart="60dp" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:scrollbars="none" />
|
||||
|
||||
<TextView
|
||||
android:id="@android:id/empty"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:fontFamily="sans-serif-light"
|
||||
android:text="@string/empty"
|
||||
android:textColor="?android:textColorSecondary"
|
||||
android:textSize="@dimen/empty_text_size" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
@ -8,20 +8,8 @@
|
|||
android:id="@+id/nav_library"
|
||||
android:icon="@drawable/ic_library_music_white_24dp"
|
||||
android:title="@string/library" />
|
||||
<item
|
||||
android:id="@+id/nav_folders"
|
||||
android:icon="@drawable/ic_folder_white_24dp"
|
||||
android:title="@string/folders" />
|
||||
</group>
|
||||
|
||||
<group android:checkableBehavior="none">
|
||||
<item
|
||||
android:id="@+id/action_scan"
|
||||
android:icon="@drawable/ic_scanner_white_24dp"
|
||||
android:title="@string/scan_media" />
|
||||
</group>
|
||||
|
||||
|
||||
<group
|
||||
android:id="@+id/navigation_drawer_menu_category_other"
|
||||
android:checkableBehavior="none">
|
||||
|
|
|
|||
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item
|
||||
android:id="@+id/action_scan"
|
||||
android:icon="@drawable/ic_scanner_white_24dp"
|
||||
android:title="@string/action_scan_directory"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_go_to_start_directory"
|
||||
android:icon="@drawable/ic_bookmark_music_white_24dp"
|
||||
android:title="@string/action_go_to_start_directory"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
</menu>
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/action_play_next"
|
||||
android:title="@string/action_play_next"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_add_to_current_playing"
|
||||
android:title="@string/action_add_to_playing_queue"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_add_to_playlist"
|
||||
android:title="@string/action_add_to_playlist"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_set_as_start_directory"
|
||||
android:title="@string/action_set_as_start_directory"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_scan"
|
||||
android:title="@string/action_scan"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_delete_from_device"
|
||||
android:title="@string/action_delete_from_device"
|
||||
app:showAsAction="never" />
|
||||
</menu>
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/action_play_next"
|
||||
android:title="@string/action_play_next"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_add_to_current_playing"
|
||||
android:title="@string/action_add_to_playing_queue"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_add_to_playlist"
|
||||
android:title="@string/action_add_to_playlist"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_go_to_album"
|
||||
android:title="@string/action_go_to_album"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_go_to_artist"
|
||||
android:title="@string/action_go_to_artist"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_share"
|
||||
android:title="@string/action_share"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_details"
|
||||
android:title="@string/action_details"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_scan"
|
||||
android:title="@string/action_scan"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_set_as_ringtone"
|
||||
android:title="@string/action_set_as_ringtone"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_delete_from_device"
|
||||
android:title="@string/action_delete_from_device"
|
||||
app:showAsAction="never" />
|
||||
</menu>
|
||||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">التفاصيل</string>
|
||||
<string name="action_rename">إعادة التسمية</string>
|
||||
<string name="action_delete">حذف</string>
|
||||
<string name="action_scan">فحص</string>
|
||||
<string name="action_set_as_start_directory">تعيين كمسار البداية</string>
|
||||
<string name="albums">الألبومات</string>
|
||||
<string name="artists">الفنانون</string>
|
||||
<string name="genres">الأنواع</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">خلط قائمة التشغيل</string>
|
||||
<string name="action_clear_playing_queue">مسح قائمة التشغيل</string>
|
||||
<string name="action_save_playing_queue">حفظ قائمة التشغيل</string>
|
||||
<string name="action_go_to_start_directory">الذهاب إلى مسار البداية</string>
|
||||
<string name="action_show_lyrics">عرض كلمات الأغاني</string>
|
||||
<string name="light_theme_name">فاتح</string>
|
||||
<string name="dark_theme_name">غامق</string>
|
||||
|
|
@ -203,18 +200,10 @@
|
|||
<string name="open_playing_queue_instruction">اسحب البطاقة في شاشة \"يتم تشغيله الآن\" لإظهار قائمة التشغيل بالكامل.</string>
|
||||
<string name="rearrange_playing_queue_instruction">إعادة ترتيب قائمة التشغيل عبر سحب الأغاني من أرقامها.</string>
|
||||
<string name="library">المكتبة</string>
|
||||
<string name="folders">المجلدات</string>
|
||||
<string name="saved_playlist_to">تم حفظ قائمة التشغيل إلى %s.</string>
|
||||
<string name="failed_to_save_playlist">فشل حفظ قائمة التشغيل (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">تم حفظ %1$d قوائم تشغيل إلى %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">تم حفظ %1$d قوائم تشغيل إلى %2$s، فشل حفظ %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> غير مدرج في مخزن الوسائط.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">بعض الملفات غير مدرجة في مخزن الوسائط.</string>
|
||||
<string name="nothing_to_scan">لا يوجد شيء للفحص</string>
|
||||
<string name="scanned_files">تم فحص %1$d من %2$d ملفات.</string>
|
||||
<string name="could_not_scan_files">تعذر فحص %d ملفات.</string>
|
||||
<string name="listing_files">جار إدراج الملفات</string>
|
||||
<string name="new_start_directory">%s هو مسار البداية الجديد.</string>
|
||||
<string name="app_widget_big_name">Phonograph - كبير</string>
|
||||
<string name="app_widget_classic_name">Phonograph - كلاسيكي</string>
|
||||
<string name="app_widget_small_name">Phonograph - صغير</string>
|
||||
|
|
@ -251,7 +240,6 @@
|
|||
<string name="only_the_first_5_colors_available">فقط أول 5 ألوان هي المتوفرة في النسخة المجانية.</string>
|
||||
<string name="black_theme_is_a_pro_feature">التنسيق الأسود هي ميزة في Phonograph Pro.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">مؤقت النوم هي ميزة في Phonograph Pro</string>
|
||||
<string name="folder_view_is_a_pro_feature">عرض المجلدات هي ميزة في Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">جار استعادة عملية الشراء...</string>
|
||||
<string name="could_not_restore_purchase">لم يتم التمكن من استعادة عملية الشراء.</string>
|
||||
<string name="purchase">شراء</string>
|
||||
|
|
@ -271,8 +259,6 @@
|
|||
<string name="library_categories">أقسام المكتبة</string>
|
||||
<string name="pref_summary_library_categories">تخصيص رؤية وترتيب أقسام المكتبة.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">عليك أن تختار قسماً واحداً على الأقل.</string>
|
||||
<string name="action_scan_directory">فحص المسار</string>
|
||||
<string name="scan_media">فحص الوسائط</string>
|
||||
<string name="action_sort_order">ترتيب الفرز</string>
|
||||
<string name="sort_order_a_z">تصاعدي</string>
|
||||
<string name="sort_order_z_a">تنازلي</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Детайли</string>
|
||||
<string name="action_rename">Преименувай</string>
|
||||
<string name="action_delete">Изтрий</string>
|
||||
<string name="action_scan">Сканирай</string>
|
||||
<string name="action_set_as_start_directory">Задай като начална директория</string>
|
||||
<string name="albums">Албуми</string>
|
||||
<string name="artists">Изпълнители</string>
|
||||
<string name="songs">Песни</string>
|
||||
|
|
@ -84,7 +82,6 @@
|
|||
<string name="action_shuffle_artist">Разбъркай артист</string>
|
||||
<string name="action_shuffle_playlist">Разбъркай този плейлист</string>
|
||||
<string name="action_clear_playing_queue">Изчисти списъкът с възпроизвеждащи се песни</string>
|
||||
<string name="action_go_to_start_directory">Отиди в началната директория</string>
|
||||
<string name="action_show_lyrics">Покажи текст</string>
|
||||
<string name="light_theme_name">Светъл изглед</string>
|
||||
<string name="dark_theme_name">Тъмен изглед</string>
|
||||
|
|
@ -178,15 +175,8 @@
|
|||
<string name="open_playing_queue_instruction">Плъзнете картата в екранът на текущо възпроизвеждащата се песен, за видите списъкът с песни.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Разместете списъкът с текущо възпроизвеждащи се песни, като хванете тракът за неговият номер.</string>
|
||||
<string name="library">Библиотека</string>
|
||||
<string name="folders">Папки</string>
|
||||
<string name="saved_playlist_to">Плейлистът бе запазен в %s.</string>
|
||||
<string name="failed_to_save_playlist">Плейлистът не бе запазен успешно (%s).</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> не е намерен в медия хранилището.]]></string>
|
||||
<string name="nothing_to_scan">Няма нищо за сканиране.</string>
|
||||
<string name="scanned_files">Сканирани %1$d файлове от %2$d.</string>
|
||||
<string name="could_not_scan_files">%d файла не бяха сканирани.</string>
|
||||
<string name="listing_files">Файловете се зареждат</string>
|
||||
<string name="new_start_directory">%s е новата заглавна директория.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Голям</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Класически</string>
|
||||
<string name="app_widget_small_name">Phonograph - Малък</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Podrobné informace o skladbě</string>
|
||||
<string name="action_rename">Přejmenovat</string>
|
||||
<string name="action_delete">Smazat</string>
|
||||
<string name="action_scan">Skenovat</string>
|
||||
<string name="action_set_as_start_directory">Nastavit jako domovskou složku</string>
|
||||
<string name="albums">Alba</string>
|
||||
<string name="artists">Interpreti</string>
|
||||
<string name="genres">Žánry</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">Přehrát playlist náhodně</string>
|
||||
<string name="action_clear_playing_queue">Vyčistit frontu přehrávání</string>
|
||||
<string name="action_save_playing_queue">Uložit frontu přehrávání</string>
|
||||
<string name="action_go_to_start_directory">Jít na domovskou složku</string>
|
||||
<string name="action_show_lyrics">Zobrazit text</string>
|
||||
<string name="light_theme_name">Světlý</string>
|
||||
<string name="dark_theme_name">Tmavý</string>
|
||||
|
|
@ -203,18 +200,10 @@
|
|||
<string name="open_playing_queue_instruction">"Potáhněte kartu v obrazovce Právě přehrávané nahoru pro zobrazení celé fronty přehrávání. "</string>
|
||||
<string name="rearrange_playing_queue_instruction">"Změňte pořadí fronty přetažením skladby za její číslo. "</string>
|
||||
<string name="library">"Knihovna "</string>
|
||||
<string name="folders">"Složky "</string>
|
||||
<string name="saved_playlist_to">Uloženo do playlistu %s.</string>
|
||||
<string name="failed_to_save_playlist">Chyba v uložení playlistu (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">Uloženo %1$d playlistů do %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">Uloženo %1$d playlistů do %2$s, nepodařilo se uložit %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> není zobrazeno v seznamu souborů.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Některé soubory nejsou zobrazeny v obchodě s médii.</string>
|
||||
<string name="nothing_to_scan">Nic ke skenování.</string>
|
||||
<string name="scanned_files">Naskenováno %1$d z %2$d souborů.</string>
|
||||
<string name="could_not_scan_files">Nelze skenovat %d souborů.</string>
|
||||
<string name="listing_files">Načítání souborů</string>
|
||||
<string name="new_start_directory">%s je nová domovská složka.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Velký</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Klasický</string>
|
||||
<string name="app_widget_small_name">Phonograph - Malý</string>
|
||||
|
|
@ -251,7 +240,6 @@
|
|||
<string name="only_the_first_5_colors_available">Ve verzi zdarma je dostupných pouze prvních 5 barev.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Černý motiv je funkce Phonograph Pro.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Časovač vypnutí je funkce Phonograph Pro.</string>
|
||||
<string name="folder_view_is_a_pro_feature">Prohlížení složek je funkce Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">Obnovení nákupu...</string>
|
||||
<string name="could_not_restore_purchase">Nákup nelze obnovit.</string>
|
||||
<string name="purchase">Zakoupit</string>
|
||||
|
|
@ -271,8 +259,6 @@
|
|||
<string name="library_categories">Kategorie knihovny</string>
|
||||
<string name="pref_summary_library_categories">Nastavit viditelnost a pořadí kategorií knihoven.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Musíte zvolit alespoň jednu kategorii.</string>
|
||||
<string name="action_scan_directory">Skemování adresáře</string>
|
||||
<string name="scan_media">Skenování médií</string>
|
||||
<string name="action_sort_order">Seřazení</string>
|
||||
<string name="sort_order_a_z">Vzestupně</string>
|
||||
<string name="sort_order_z_a">Sestupně</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Details</string>
|
||||
<string name="action_rename">Umbenennen</string>
|
||||
<string name="action_delete">Löschen</string>
|
||||
<string name="action_scan">Scannen</string>
|
||||
<string name="action_set_as_start_directory">Als Start-Verzeichnis festlegen</string>
|
||||
<string name="albums">Alben</string>
|
||||
<string name="artists">Interpreten</string>
|
||||
<string name="genres">Genres</string>
|
||||
|
|
@ -89,7 +87,6 @@
|
|||
<string name="action_shuffle_playlist">Wiedergabeliste zufällig wiedergeben</string>
|
||||
<string name="action_clear_playing_queue">Warteschlange leeren</string>
|
||||
<string name="action_save_playing_queue">Warteschlange speichern</string>
|
||||
<string name="action_go_to_start_directory">Zum Start-Verzeichnis gehen</string>
|
||||
<string name="action_show_lyrics">Songtext anzeigen</string>
|
||||
<string name="light_theme_name">Hell</string>
|
||||
<string name="dark_theme_name">Dunkel</string>
|
||||
|
|
@ -207,18 +204,10 @@
|
|||
<string name="open_playing_queue_instruction">Ziehe die Karte in der aktuellen Wiedergabe hoch, um die komplette Warteschlange anzeigen zu lassen.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Ziehe die Titelnummer eines Titels nach oben oder unten, um die Warteschlange neu anzuordnen.</string>
|
||||
<string name="library">Bibliothek</string>
|
||||
<string name="folders">Ordner</string>
|
||||
<string name="saved_playlist_to">Playlist wurde in %s gespeichert.</string>
|
||||
<string name="failed_to_save_playlist">Speichern der Playlist fehlgeschlagen (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">%1$d Wiedergabelisten wurden in %2$s gespeichert.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">%1$d Wiedergabelisten wurden in %2$s gespeichert, %3$d konnten nicht gespeichert werden.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> ist nicht im Media Store gelistet.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Einige Dateien sind nicht im Medienverzeichnis gelistet.</string>
|
||||
<string name="nothing_to_scan">Nichts zu scannen.</string>
|
||||
<string name="scanned_files">%1$d von %2$d Dateien gescannt.</string>
|
||||
<string name="could_not_scan_files">%d Dateien konnten nicht gescannt werden.</string>
|
||||
<string name="listing_files">Dateien werden gelistet</string>
|
||||
<string name="new_start_directory">%s ist das neue Start-Verzeichnis.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Groß</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Klassisch</string>
|
||||
<string name="app_widget_small_name">Phonograph - Klein</string>
|
||||
|
|
@ -255,7 +244,6 @@
|
|||
<string name="only_the_first_5_colors_available">Nur die ersten 5 Farben sind in der kostenlosen Version verfügbar.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Das schwarze Theme ist ein Phonograph Pro-Feature</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Der Einschlaf-Timer ist ein Phonograph Pro-Feature</string>
|
||||
<string name="folder_view_is_a_pro_feature">Die Ordner-Ansicht ist ein Phonograph Pro-Feature.</string>
|
||||
<string name="restoring_purchase">Stelle Kauf wieder her...</string>
|
||||
<string name="could_not_restore_purchase">Kauf konnte nicht wiederhergestellt werden.</string>
|
||||
<string name="purchase">Kaufen</string>
|
||||
|
|
@ -275,8 +263,6 @@
|
|||
<string name="library_categories">Bibliothekskategorien</string>
|
||||
<string name="pref_summary_library_categories">Anzeige und Anordnung der einzelnen Kategorien festlegen.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Mindestens eine Kategorie muss ausgewählt sein.</string>
|
||||
<string name="action_scan_directory">Verzeichnis scannen</string>
|
||||
<string name="scan_media">Medien scannen</string>
|
||||
<string name="action_sort_order">Sortierung</string>
|
||||
<string name="sort_order_a_z">Aufsteigend</string>
|
||||
<string name="sort_order_z_a">Absteigend</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">"Λεπτομέρειες "</string>
|
||||
<string name="action_rename">Μετονομασία</string>
|
||||
<string name="action_delete">Διαγραφή</string>
|
||||
<string name="action_scan">Σάρωση</string>
|
||||
<string name="action_set_as_start_directory">Ορισμός ως κατάλογος έναρξης</string>
|
||||
<string name="albums">Άλμπουμ</string>
|
||||
<string name="artists">Καλλιτέχνες</string>
|
||||
<string name="genres">Είδη</string>
|
||||
|
|
@ -89,7 +87,6 @@
|
|||
<string name="action_shuffle_playlist">Τυχαία λίστα αναπαραγωγής</string>
|
||||
<string name="action_clear_playing_queue">Εκκαθάριση της ουράς αναπαραγωγής</string>
|
||||
<string name="action_save_playing_queue">Αποθήκευση της σειράς αναπαραγωγής</string>
|
||||
<string name="action_go_to_start_directory">Πηγαίνετε στον κατάλογο έναρξης</string>
|
||||
<string name="action_show_lyrics">Εμφάνιση στίχων</string>
|
||||
<string name="light_theme_name">Ανοιχτό</string>
|
||||
<string name="dark_theme_name">Σκούρο</string>
|
||||
|
|
@ -193,18 +190,10 @@
|
|||
<string name="open_playing_queue_instruction">Σύρετε την κάρτα στην οθόνη \"παίζει τώρα\" μέχρι να αποκαλυφθεί ολόκληρη η σειρά τραγουδιών.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Κάντε αναδιάταξη της σειράς τραγουδιών σύροντας ένα τραγούδι από τον αριθμό του.</string>
|
||||
<string name="library">Βιβλιοθήκη</string>
|
||||
<string name="folders">Φάκελοι</string>
|
||||
<string name="saved_playlist_to">Η λίστα αναπαραγωγής αποθηκεύτηκε στο %s.</string>
|
||||
<string name="failed_to_save_playlist">Η λίστα αναπαραγωγής απέτυχε να αποθηκευτεί (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">Αποθηκεύτηκαν %1$d λίστες αναπαραγωγής σε %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">Αποθηκεύτηκαν %1$d λίστες αναπαραγωγής σε %2$s, αποτυχία αποθήκευσης %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> δεν είναι καταχωρημένο στο κατάστημα.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Μερικά αρχεία δεν έχουν κατανεμηθεί στο κατάστημα αρχείων.</string>
|
||||
<string name="nothing_to_scan">Δεν υπάρχει κάτι για σάρωση.</string>
|
||||
<string name="scanned_files">Έγινε σάρωση σε %1$d από %2$d αρχεία.</string>
|
||||
<string name="could_not_scan_files">Δεν μπόρεσε να πραγματοποιηθεί σάρωση σε %d αρχεία.</string>
|
||||
<string name="listing_files">Λίστα αρχείων</string>
|
||||
<string name="new_start_directory">%s είναι ο νέος κατάλογος έναρξης.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Μεγάλο</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Κλασικό</string>
|
||||
<string name="app_widget_small_name">Phonograph - Μικρό</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Details</string>
|
||||
<string name="action_rename">Rename</string>
|
||||
<string name="action_delete">Delete</string>
|
||||
<string name="action_scan">Scan</string>
|
||||
<string name="action_set_as_start_directory">Set as start directory</string>
|
||||
<string name="albums">Albums</string>
|
||||
<string name="artists">Artists</string>
|
||||
<string name="songs">Songs</string>
|
||||
|
|
@ -86,7 +84,6 @@
|
|||
<string name="action_shuffle_playlist">Shuffle playlist</string>
|
||||
<string name="action_clear_playing_queue">Clear playing queue</string>
|
||||
<string name="action_save_playing_queue">Save playing queue</string>
|
||||
<string name="action_go_to_start_directory">Go to start directory</string>
|
||||
<string name="action_show_lyrics">Show lyrics</string>
|
||||
<string name="light_theme_name">Light</string>
|
||||
<string name="dark_theme_name">Dark</string>
|
||||
|
|
@ -196,15 +193,8 @@
|
|||
<string name="open_playing_queue_instruction">Swipe the card in the now playing screen up to reveal the full playing queue.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Rearrange the playing queue by dragging a song from its track number.</string>
|
||||
<string name="library">Library</string>
|
||||
<string name="folders">Folders</string>
|
||||
<string name="saved_playlist_to">Saved playlist to %s.</string>
|
||||
<string name="failed_to_save_playlist">Failed to save playlist (%s).</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> is not listed in the media store.]]></string>
|
||||
<string name="nothing_to_scan">Nothing to scan.</string>
|
||||
<string name="scanned_files">Scanned %1$d of %2$d files.</string>
|
||||
<string name="could_not_scan_files">Could not scan %d files.</string>
|
||||
<string name="listing_files">Listing files</string>
|
||||
<string name="new_start_directory">%s is the new start directory.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Big</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Classic</string>
|
||||
<string name="app_widget_small_name">Phonograph - Small</string>
|
||||
|
|
@ -241,7 +231,6 @@
|
|||
<string name="only_the_first_5_colors_available">Only the first 5 colors are available in the free version.</string>
|
||||
<string name="black_theme_is_a_pro_feature">The black theme is Phonograph Pro feature.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Sleep timer is a Phonograph Pro feature</string>
|
||||
<string name="folder_view_is_a_pro_feature">Folder view is a Phonograph Pro feature.</string>
|
||||
<string name="restoring_purchase">Restoring purchase…</string>
|
||||
<string name="could_not_restore_purchase">Could not restore purchase.</string>
|
||||
<string name="purchase">Purchase</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Details</string>
|
||||
<string name="action_rename">Rename</string>
|
||||
<string name="action_delete">Delete</string>
|
||||
<string name="action_scan">Scan</string>
|
||||
<string name="action_set_as_start_directory">Set as start directory</string>
|
||||
<string name="albums">Albums</string>
|
||||
<string name="artists">Artists</string>
|
||||
<string name="genres">Genres</string>
|
||||
|
|
@ -87,7 +85,6 @@
|
|||
<string name="action_shuffle_playlist">Shuffle playlist</string>
|
||||
<string name="action_clear_playing_queue">Clear playing queue</string>
|
||||
<string name="action_save_playing_queue">Save playing queue</string>
|
||||
<string name="action_go_to_start_directory">Go to start directory</string>
|
||||
<string name="action_show_lyrics">Show lyrics</string>
|
||||
<string name="light_theme_name">Light</string>
|
||||
<string name="dark_theme_name">Dark</string>
|
||||
|
|
@ -202,15 +199,8 @@
|
|||
<string name="open_playing_queue_instruction">Swipe the card in the now playing screen up to reveal the full playing queue.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Rearrange the playing queue by dragging a song from its track number.</string>
|
||||
<string name="library">Library</string>
|
||||
<string name="folders">Folders</string>
|
||||
<string name="saved_playlist_to">Saved playlist to %s.</string>
|
||||
<string name="failed_to_save_playlist">Failed to save playlist (%s).</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> is not listed in the media store.]]></string>
|
||||
<string name="nothing_to_scan">Nothing to scan.</string>
|
||||
<string name="scanned_files">Scanned %1$d of %2$d files.</string>
|
||||
<string name="could_not_scan_files">Could not scan %d files.</string>
|
||||
<string name="listing_files">Listing files</string>
|
||||
<string name="new_start_directory">%s is the new start directory.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Big</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Classic</string>
|
||||
<string name="app_widget_small_name">Phonograph - Small</string>
|
||||
|
|
@ -247,7 +237,6 @@
|
|||
<string name="only_the_first_5_colors_available">Only the first 5 colours are available in the free version.</string>
|
||||
<string name="black_theme_is_a_pro_feature">The black theme is Phonograph Pro feature.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Sleep timer is a Phonograph Pro feature</string>
|
||||
<string name="folder_view_is_a_pro_feature">Folder view is a Phonograph Pro feature.</string>
|
||||
<string name="restoring_purchase">Restoring purchase…</string>
|
||||
<string name="could_not_restore_purchase">Could not restore purchase.</string>
|
||||
<string name="purchase">Purchase</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Detalles</string>
|
||||
<string name="action_rename">Renombrar</string>
|
||||
<string name="action_delete">Eliminar</string>
|
||||
<string name="action_scan">Escanear</string>
|
||||
<string name="action_set_as_start_directory">Establecer como directorio de inicio</string>
|
||||
<string name="albums">Álbumes</string>
|
||||
<string name="artists">Artistas</string>
|
||||
<string name="genres">Géneros</string>
|
||||
|
|
@ -89,7 +87,6 @@
|
|||
<string name="action_shuffle_playlist">Reproducción aleatoria de la lista de reproducción</string>
|
||||
<string name="action_clear_playing_queue">Vaciar cola de reproducción</string>
|
||||
<string name="action_save_playing_queue">Guardar cola de reproducción</string>
|
||||
<string name="action_go_to_start_directory">Ir al directorio de inicio</string>
|
||||
<string name="action_show_lyrics">Mostrar letras</string>
|
||||
<string name="light_theme_name">Claro</string>
|
||||
<string name="dark_theme_name">Oscuro</string>
|
||||
|
|
@ -207,18 +204,10 @@
|
|||
<string name="open_playing_queue_instruction">Desliza la carta hacia arriba en la pantalla de ahora reproduciendo para desvelar completamente la cola de reproducción.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Reordena la cola de reproducción arrastrando la canción desde su número de pista.</string>
|
||||
<string name="library">Biblioteca</string>
|
||||
<string name="folders">Carpetas</string>
|
||||
<string name="saved_playlist_to">Lista de reproducción guardada en %s.</string>
|
||||
<string name="failed_to_save_playlist">No se pudo guardar la lista de reproducción (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">%1$d de %2$s listas de reproducción guardadas.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">Guardada %1$d de %2$s listas de reproducción, fallo al guardar la %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> no se encuentra listado en los medios almacenados]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Español</string>
|
||||
<string name="nothing_to_scan">Nada para analizar</string>
|
||||
<string name="scanned_files">%1$d de %2$d archivos analizados</string>
|
||||
<string name="could_not_scan_files">No se pudieron analizar los archivos %d</string>
|
||||
<string name="listing_files">Listado de archivos</string>
|
||||
<string name="new_start_directory">%s es el nuevo directorio de inicio.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Grande</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Clásico</string>
|
||||
<string name="app_widget_small_name">Phonograph - Pequeño</string>
|
||||
|
|
@ -255,7 +244,6 @@
|
|||
<string name="only_the_first_5_colors_available">Sólo los primeros 5 colores están disponibles en la versión gratuita.</string>
|
||||
<string name="black_theme_is_a_pro_feature">El tema negro es una característica de Phonograph Pro.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">El temporizador de sueño es una característica de Phonograph Pro.</string>
|
||||
<string name="folder_view_is_a_pro_feature">La vista de carpetas es una característica de Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">Restableciendo la compra...</string>
|
||||
<string name="could_not_restore_purchase">No se pudo restablecer la compra</string>
|
||||
<string name="purchase">Comprar</string>
|
||||
|
|
@ -276,8 +264,6 @@ El contenido de las carpetas de la lista negra está oculto en tu biblioteca"</s
|
|||
<string name="library_categories">Categorías de la biblioteca</string>
|
||||
<string name="pref_summary_library_categories">Configure la visibilidad y el orden de las categorías de la biblioteca.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Debes seleccionar al menos una categoría.</string>
|
||||
<string name="action_scan_directory">Escanear directorio</string>
|
||||
<string name="scan_media">Escanear medios</string>
|
||||
<string name="action_sort_order">Orden de clasificación</string>
|
||||
<string name="sort_order_a_z">Ascendente</string>
|
||||
<string name="sort_order_z_a">Descendente</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Detalles</string>
|
||||
<string name="action_rename">Renombrar</string>
|
||||
<string name="action_delete">Borrar</string>
|
||||
<string name="action_scan">Escanear</string>
|
||||
<string name="action_set_as_start_directory">Establecer como directorio de inicio</string>
|
||||
<string name="albums">Álbumes</string>
|
||||
<string name="artists">Artistas</string>
|
||||
<string name="genres">Géneros</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">Reproducción aleatoria de la lista de reproducción</string>
|
||||
<string name="action_clear_playing_queue">Limpiar cola de reproducción</string>
|
||||
<string name="action_save_playing_queue">Guardar cola de reproducción</string>
|
||||
<string name="action_go_to_start_directory">Ir al directorio de inicio</string>
|
||||
<string name="action_show_lyrics">Mostrar letra</string>
|
||||
<string name="light_theme_name">Claro</string>
|
||||
<string name="dark_theme_name">Oscuro</string>
|
||||
|
|
@ -203,17 +200,9 @@
|
|||
<string name="open_playing_queue_instruction">Desliza la tarjeta en la pantalla de Reproducción Actual para desplegar la cola de reproducción completa.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Reorganiza la cola de reproducción arrastrando una canción desde su número de pista.</string>
|
||||
<string name="library">Biblioteca</string>
|
||||
<string name="folders">Carpetas</string>
|
||||
<string name="saved_playlist_to">Lista de reproducción guardada en %s.</string>
|
||||
<string name="failed_to_save_playlist">No se pudo guardar lista de reproducción (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">%1$d de %2$s listas de reproducción guardadas.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> no se encuentra listado en los medios almacenados.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Algunos archivos no se encuentran listados en los medios almacenados.</string>
|
||||
<string name="nothing_to_scan">Nada para escanear.</string>
|
||||
<string name="scanned_files">%1$d de %2$d archivos escaneados.</string>
|
||||
<string name="could_not_scan_files">No se pudieron escanear los archivos %d.</string>
|
||||
<string name="listing_files">Listado de archivos</string>
|
||||
<string name="new_start_directory">%s es el nuevo directorio de inicio.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Grande</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Clásico</string>
|
||||
<string name="app_widget_small_name">Phonograph - Pequeño</string>
|
||||
|
|
@ -250,7 +239,6 @@
|
|||
<string name="only_the_first_5_colors_available">Solo los primeros 5 colores están disponibles en la versión gratuita.</string>
|
||||
<string name="black_theme_is_a_pro_feature">El tema negro es una función de Phonograph Pro.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">El temporizador de apagado es una función de Phonograph Pro</string>
|
||||
<string name="folder_view_is_a_pro_feature">La vista de carpetas es una función de Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">Restaurando compra...</string>
|
||||
<string name="could_not_restore_purchase">No se pudo restaurar la compra.</string>
|
||||
<string name="purchase">Comprar</string>
|
||||
|
|
@ -270,8 +258,6 @@
|
|||
<string name="library_categories">Categorías de la biblioteca</string>
|
||||
<string name="pref_summary_library_categories">Configurar la vista y orden de las categorías de la biblioteca.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Tienes que seleccionar al menos una categoría.</string>
|
||||
<string name="action_scan_directory">Escanear directorio</string>
|
||||
<string name="scan_media">Escanear medios</string>
|
||||
<string name="action_sort_order">Ordenar por</string>
|
||||
<string name="sort_order_a_z">Ascendente</string>
|
||||
<string name="sort_order_z_a">Descendente</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Yksityiskohdat</string>
|
||||
<string name="action_rename">Nimeä uudelleen</string>
|
||||
<string name="action_delete">Poista</string>
|
||||
<string name="action_scan">Skannaa</string>
|
||||
<string name="action_set_as_start_directory">Aseta aloituskansioksi</string>
|
||||
<string name="albums">Albumit</string>
|
||||
<string name="artists">Artistit</string>
|
||||
<string name="genres">Tyylilajit</string>
|
||||
|
|
@ -89,7 +87,6 @@
|
|||
<string name="action_shuffle_playlist">Sekoita soittolistat</string>
|
||||
<string name="action_clear_playing_queue">Tyhjennä toistojono</string>
|
||||
<string name="action_save_playing_queue">Tallenna toistojono</string>
|
||||
<string name="action_go_to_start_directory">Mene aloituskansioon</string>
|
||||
<string name="action_show_lyrics">Näytä lyriikat</string>
|
||||
<string name="light_theme_name">Vaalea</string>
|
||||
<string name="dark_theme_name">Tumma</string>
|
||||
|
|
@ -207,18 +204,10 @@
|
|||
<string name="open_playing_queue_instruction">Vedä korttia Toistetaan parhaillaan -ikkunassa ylös, nähdäksesi koko toistojonon.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Järjestä toistojonoa vetämällä kappaletta sen raitanumerosta.</string>
|
||||
<string name="library">Kirjasto</string>
|
||||
<string name="folders">Kansiot</string>
|
||||
<string name="saved_playlist_to">Soittolista tallennettu paikkaan %s.</string>
|
||||
<string name="failed_to_save_playlist">Soittolistan tallentaminen epäonnistui (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">Tallennettiin soittolistat %1$d paikkaan %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">Tallennettiin soittolistat %1$d paikkaan %2$s, %3$d tallentaminen epäonnistui.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[Kohdetta <b>%s</b> ei ole listattu Media Storessa.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Jotkin tiedostot eivät ole listattuna Media Storessa.</string>
|
||||
<string name="nothing_to_scan">Ei mitään skannattavaa.</string>
|
||||
<string name="scanned_files">Skannattiin %1$d %2$d tiedostosta.</string>
|
||||
<string name="could_not_scan_files">Ei voitu skannata %d tiedostoa.</string>
|
||||
<string name="listing_files">Listataan tiedostoja</string>
|
||||
<string name="new_start_directory">%s on uusi aloituskansio.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Iso</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Klassikko</string>
|
||||
<string name="app_widget_small_name">Phonograph - Pieni</string>
|
||||
|
|
@ -255,7 +244,6 @@
|
|||
<string name="only_the_first_5_colors_available">Sovelluksen ilmaisversio on rajoitettu 5 ensimmäiseen värivaihtoehtoon.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Musta teema on Phonograph Pro:n ominaisuus.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Herätyskello on Phonograph Pro:n ominaisuus.</string>
|
||||
<string name="folder_view_is_a_pro_feature">Kansionäkymä on Phonograph Pro:n ominaisuus.</string>
|
||||
<string name="restoring_purchase">Palautetaan ostoa...</string>
|
||||
<string name="could_not_restore_purchase">Ei voitu palauttaa ostoa.</string>
|
||||
<string name="purchase">Osta</string>
|
||||
|
|
@ -275,8 +263,6 @@
|
|||
<string name="library_categories">Kirjaston välilehdet</string>
|
||||
<string name="pref_summary_library_categories">Määrittele kirjaston välilehtien näkyvyyttä ja järjestystä.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Sinun täytyy valita vähintään yksi kategoria.</string>
|
||||
<string name="action_scan_directory">Skannaa kansio</string>
|
||||
<string name="scan_media">Skannaa media</string>
|
||||
<string name="action_sort_order">Lajittelu järjestys</string>
|
||||
<string name="sort_order_a_z">Nouseva</string>
|
||||
<string name="sort_order_z_a">Laskeva</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Détails</string>
|
||||
<string name="action_rename">Renommer</string>
|
||||
<string name="action_delete">Supprimer</string>
|
||||
<string name="action_scan">Analyser</string>
|
||||
<string name="action_set_as_start_directory">Définir comme répertoire de départ</string>
|
||||
<string name="albums">Albums</string>
|
||||
<string name="artists">Artistes</string>
|
||||
<string name="genres">Genres</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">Lecture aléatoire</string>
|
||||
<string name="action_clear_playing_queue">Effacer la file de lecture</string>
|
||||
<string name="action_save_playing_queue">Sauvegarder la file de lecture</string>
|
||||
<string name="action_go_to_start_directory">Aller au répertoire de départ</string>
|
||||
<string name="action_show_lyrics">Afficher les paroles</string>
|
||||
<string name="light_theme_name">Clair</string>
|
||||
<string name="dark_theme_name">Sombre</string>
|
||||
|
|
@ -203,17 +200,9 @@
|
|||
<string name="open_playing_queue_instruction">Vous pouvez glisser la carte dans l\'écran de lecture en cours pour afficher la file de lecture complète.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Vous pouvez réorganiser la file de lecture en faisant glisser une chanson à partir de son numéro de piste.</string>
|
||||
<string name="library">Bibliothèque</string>
|
||||
<string name="folders">Dossiers</string>
|
||||
<string name="saved_playlist_to">Liste de lecture sauvegardée dans %s.</string>
|
||||
<string name="failed_to_save_playlist">Impossible de sauvegarder la liste de lecture (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">Liste de lecture enregistrée %1$d à %2$s</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> n\'est pas dans le catalogue de médias.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">"Certains fichiers ne sont pas enregistrés dans le stockage média "</string>
|
||||
<string name="nothing_to_scan">Rien à analyser.</string>
|
||||
<string name="scanned_files">%1$d fichiers scannés sur %2$d.</string>
|
||||
<string name="could_not_scan_files">Impossible de scanner %d fichiers.</string>
|
||||
<string name="listing_files">Liste des fichiers</string>
|
||||
<string name="new_start_directory">%s est le nouveau répertoire de départ.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Grand</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Classique</string>
|
||||
<string name="app_widget_small_name">Phonograph - Petit</string>
|
||||
|
|
@ -250,7 +239,6 @@
|
|||
<string name="only_the_first_5_colors_available">Seules les 5 premières couleurs sont disponibles dans la version gratuite.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Le thème noir est une fonctionnalité Phonograph Pro</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Le minuteur de sommeil est une fonctionnalité Phonograph Pro</string>
|
||||
<string name="folder_view_is_a_pro_feature">La vue par dossier est une fonctionnalité Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">Restauration des achats...</string>
|
||||
<string name="could_not_restore_purchase">Impossible de restaurer les achats</string>
|
||||
<string name="purchase">Acheter</string>
|
||||
|
|
@ -270,8 +258,6 @@
|
|||
<string name="library_categories">Catégories de la bibliothèque</string>
|
||||
<string name="pref_summary_library_categories">Configurer la visibilité et l\'ordre des catégories.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Vous devez sélectionner au moins une catégorie.</string>
|
||||
<string name="action_scan_directory">Scanner le dossier.</string>
|
||||
<string name="scan_media">Scanner les médias.</string>
|
||||
<string name="action_sort_order">Ordre de tri</string>
|
||||
<string name="sort_order_a_z">Ascendant</string>
|
||||
<string name="sort_order_z_a">Descendant</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">פרטים</string>
|
||||
<string name="action_rename">שנה שם</string>
|
||||
<string name="action_delete">מחק</string>
|
||||
<string name="action_scan">סרוק</string>
|
||||
<string name="action_set_as_start_directory">הגדר כנתיב התחלתי</string>
|
||||
<string name="albums">אלבומים</string>
|
||||
<string name="artists">אמנים</string>
|
||||
<string name="genres">סגנונות</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">ערבב רשימת השמעה</string>
|
||||
<string name="action_clear_playing_queue">איפוס תור השמעה</string>
|
||||
<string name="action_save_playing_queue">שמור תור פעיל</string>
|
||||
<string name="action_go_to_start_directory">עבור לנתיב התחלתי</string>
|
||||
<string name="action_show_lyrics">הצג מילים</string>
|
||||
<string name="light_theme_name">בהיר</string>
|
||||
<string name="dark_theme_name">כהה</string>
|
||||
|
|
@ -203,18 +200,10 @@
|
|||
<string name="open_playing_queue_instruction">החלק את הכרטיס למעלה במסך \'מנגן כעת\' כדי לחשוף את תור ההשמעה המלא.</string>
|
||||
<string name="rearrange_playing_queue_instruction">מיין מחדש את התור על ידי גרירת השיר מהמספר שלו.</string>
|
||||
<string name="library">ספריה</string>
|
||||
<string name="folders">תיקיות</string>
|
||||
<string name="saved_playlist_to">רשימת ההשמעה נשמרה ל-%s.</string>
|
||||
<string name="failed_to_save_playlist">לא ניתן היה לשמור את רשימת ההשמעה (%s)</string>
|
||||
<string name="saved_x_playlists_to_x">נשמרו %1$d רשימות השמעה ל-%2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">נשמרו %1$d רשימות השמעה ל-%2$s. לא ניתן היה לשמור %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> לא רשום בחנות המדיה.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">קבצים מסוימים לא רשומים בחנות המדיה.</string>
|
||||
<string name="nothing_to_scan">אין כלום לסרוק.</string>
|
||||
<string name="scanned_files">נסרקו %1$d מתוך %2$d קבצים.</string>
|
||||
<string name="could_not_scan_files">לא ניתן היה לסרוק %d קבצים.</string>
|
||||
<string name="listing_files">מבצע רישום קבצים</string>
|
||||
<string name="new_start_directory">%s הוא כעת נתיב ההתחלה החדש.</string>
|
||||
<string name="app_widget_big_name">Phonograph - גדול</string>
|
||||
<string name="app_widget_classic_name">Phonograph - קלאסי</string>
|
||||
<string name="app_widget_small_name">Phonograph - קטן</string>
|
||||
|
|
@ -251,7 +240,6 @@
|
|||
<string name="only_the_first_5_colors_available">רק 5 הצבעים הראשונים זמינים בגרסה החינמית.</string>
|
||||
<string name="black_theme_is_a_pro_feature">ערכת הנושא השחורה היא אפשרות הזמינה ב-Phonograph Pro בלבד.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">טיימר לשינה הוא אפשרות הזמינה ב-Phonograph Pro בלבד.</string>
|
||||
<string name="folder_view_is_a_pro_feature">תצוגת תיקיות היא אפשרות הזמינה ב-Phonograph Pro בלבד.</string>
|
||||
<string name="restoring_purchase">משחזר רכישה...</string>
|
||||
<string name="could_not_restore_purchase">לא ניתן לשחזר רכישה.</string>
|
||||
<string name="purchase">קנה</string>
|
||||
|
|
@ -271,8 +259,6 @@
|
|||
<string name="library_categories">קטגוריות הספרייה</string>
|
||||
<string name="pref_summary_library_categories">הגדר את הנראות והסדר של הקטגוריות בספרייה.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">עליך לבחור לפחות קטגוריה אחת.</string>
|
||||
<string name="action_scan_directory">סרוק ספרייה</string>
|
||||
<string name="scan_media">סרוק מדיה</string>
|
||||
<string name="action_sort_order">סדר המיון</string>
|
||||
<string name="sort_order_a_z">סדר עולה</string>
|
||||
<string name="sort_order_z_a">סדר יורד</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Detalji</string>
|
||||
<string name="action_rename">Preimenuj</string>
|
||||
<string name="action_delete">Izbriši</string>
|
||||
<string name="action_scan">Skeniraj</string>
|
||||
<string name="action_set_as_start_directory">Postavi kao početni direktorij</string>
|
||||
<string name="albums">Albumi</string>
|
||||
<string name="artists">Izvođači</string>
|
||||
<string name="genres">Žanrovi</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">Izmiješaj popis naslova</string>
|
||||
<string name="action_clear_playing_queue">Očisti red čekanja</string>
|
||||
<string name="action_save_playing_queue">Spremi red čekanja</string>
|
||||
<string name="action_go_to_start_directory">Idi na početni direktorij</string>
|
||||
<string name="action_show_lyrics">Prikaži stihove</string>
|
||||
<string name="light_theme_name">Svijetla</string>
|
||||
<string name="dark_theme_name">Tamna</string>
|
||||
|
|
@ -203,18 +200,10 @@
|
|||
<string name="open_playing_queue_instruction">Povucite karticu na zaslonu za reprodukciju kako bi otvorili cijeli red čekanja.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Preuredite red čekanja povlačenjem pjesme za njen broj.</string>
|
||||
<string name="library">Biblioteka</string>
|
||||
<string name="folders">Mape</string>
|
||||
<string name="saved_playlist_to">Popis naslova spremljen u %s.</string>
|
||||
<string name="failed_to_save_playlist">Popis naslova nije spremljen (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">%1$d popisa naslova je spremljeno u %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">%1$d popisa naslova je spremljeno u %2$s, %3$d nije uspješno spremljeno.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> nije na popisu media storea.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Neke datoteke nisu u medijskom spremniku.</string>
|
||||
<string name="nothing_to_scan">Nema ništa za skeniranje.</string>
|
||||
<string name="scanned_files">Skenirano %1$d od %2$d datoteka</string>
|
||||
<string name="could_not_scan_files">Nije moguće skenirati %d datoteka.</string>
|
||||
<string name="listing_files">Listanje datoteka</string>
|
||||
<string name="new_start_directory">%s je novi početni direktorij.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Veliki</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Klasični</string>
|
||||
<string name="app_widget_small_name">Phonograph - Mali</string>
|
||||
|
|
@ -251,7 +240,6 @@
|
|||
<string name="only_the_first_5_colors_available">Samo je prvih 5 boja dostupno u besplatnoj verziji.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Crna tema je Phonograph Pro značajka.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Tajmer za spavanje je Phonograph Pro značajka.</string>
|
||||
<string name="folder_view_is_a_pro_feature">Prikaz mapa je Phonograph Pro značajka.</string>
|
||||
<string name="restoring_purchase">Vraćanje kupnje...</string>
|
||||
<string name="could_not_restore_purchase">Nije moguće vratiti kupnju.</string>
|
||||
<string name="purchase">Kupi</string>
|
||||
|
|
@ -271,8 +259,6 @@
|
|||
<string name="library_categories">Kategorije biblioteke</string>
|
||||
<string name="pref_summary_library_categories">Prilagodite vidljivost i poredak kategorija biblioteke</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Morate odabrati barem jednu kategoriju</string>
|
||||
<string name="action_scan_directory">Skeniraj direktorij</string>
|
||||
<string name="scan_media">Skeniraj medije</string>
|
||||
<string name="action_sort_order">Način sortiranja</string>
|
||||
<string name="sort_order_a_z">Uzlazno</string>
|
||||
<string name="sort_order_z_a">Silazno</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Részletek</string>
|
||||
<string name="action_rename">Átnevezés</string>
|
||||
<string name="action_delete">Törlés</string>
|
||||
<string name="action_scan">Beolvasás</string>
|
||||
<string name="action_set_as_start_directory">Beállítás kezdő könyvtárként</string>
|
||||
<string name="albums">Albumok</string>
|
||||
<string name="artists">Előadók</string>
|
||||
<string name="genres">Műfajok</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">Lejátszási lista keverése</string>
|
||||
<string name="action_clear_playing_queue">Lejátszási lista törlése</string>
|
||||
<string name="action_save_playing_queue">Mentés a lejátszási sorba</string>
|
||||
<string name="action_go_to_start_directory">Ugrás a kezdő könyvtárra</string>
|
||||
<string name="action_show_lyrics">Dalszöveg</string>
|
||||
<string name="light_theme_name">Világos</string>
|
||||
<string name="dark_theme_name">Sötét</string>
|
||||
|
|
@ -203,18 +200,10 @@
|
|||
<string name="open_playing_queue_instruction">Húzza fel a kártyát a most játszott képernyőn, hogy megnyissa a lejátszási sort.</string>
|
||||
<string name="rearrange_playing_queue_instruction">A lejátszási sort átrendezheti, ha a dalokat a sorszámuknál megfogva húzni kezdi.</string>
|
||||
<string name="library">Könyvtár</string>
|
||||
<string name="folders">Mappák</string>
|
||||
<string name="saved_playlist_to">Lejátszási lista mentve ide: %s.</string>
|
||||
<string name="failed_to_save_playlist">Nem sikerült menteni a lejátszási listát (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">Mentés %1$d lejátszási listát %2$s-re.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">Mentés %1$d lejátszási listák %2$s, nem sikerült menteni a %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[A(z) <b>%s</b> nem szerepel a médiatárban.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Egyes fájlok nem szerepelnek a médiában.</string>
|
||||
<string name="nothing_to_scan">Nincs mit beolvasni.</string>
|
||||
<string name="scanned_files">%1$d/%2$d fájl beolvasva.</string>
|
||||
<string name="could_not_scan_files">%d fájl beolvasása nem sikerült.</string>
|
||||
<string name="listing_files">Fájlok betöltése</string>
|
||||
<string name="new_start_directory">Az új kezdő könyvtár: %s</string>
|
||||
<string name="app_widget_big_name">Phonograph - Nagy</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Klasszikus</string>
|
||||
<string name="app_widget_small_name">Phonograph - Kicsi</string>
|
||||
|
|
@ -251,7 +240,6 @@
|
|||
<string name="only_the_first_5_colors_available">Csak az első 5 szín áll rendelkezésre az ingyenes verzióban.</string>
|
||||
<string name="black_theme_is_a_pro_feature">A fekete téma a Phonograph Pro funkcióban van.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Az elalvásidőzitő a Phonograph Pro funkcióban van.</string>
|
||||
<string name="folder_view_is_a_pro_feature">A mappa nézete a Phonograph Pro funkcióban van.</string>
|
||||
<string name="restoring_purchase">A vásárlás visszaállítása...</string>
|
||||
<string name="could_not_restore_purchase">A vásárlást nem sikerült visszaállítani.</string>
|
||||
<string name="purchase">Vásárlás</string>
|
||||
|
|
@ -271,8 +259,6 @@
|
|||
<string name="library_categories">Könyvtár kategóriák</string>
|
||||
<string name="pref_summary_library_categories">Könyvtár kategóriák láthatóságának és sorrendjének beállítása.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Legalább egy kategóriát ki kell választania.</string>
|
||||
<string name="action_scan_directory">Szkennelési könyvtár</string>
|
||||
<string name="scan_media">Szkennelési média</string>
|
||||
<string name="action_sort_order">Sorrend</string>
|
||||
<string name="sort_order_a_z">Növekvő</string>
|
||||
<string name="sort_order_z_a">Csökkenő</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Rincian</string>
|
||||
<string name="action_rename">Ganti Nama</string>
|
||||
<string name="action_delete">Hapus</string>
|
||||
<string name="action_scan">Pindai</string>
|
||||
<string name="action_set_as_start_directory">Atur sebagai direktori awal</string>
|
||||
<string name="albums">Album-album</string>
|
||||
<string name="artists">Artis</string>
|
||||
<string name="genres">Aliran</string>
|
||||
|
|
@ -89,7 +87,6 @@
|
|||
<string name="action_shuffle_playlist">Putar daftar putar secara acak</string>
|
||||
<string name="action_clear_playing_queue">Kosongkan antrean yang sedang diputar</string>
|
||||
<string name="action_save_playing_queue">Menyimpan antrian yang diputar</string>
|
||||
<string name="action_go_to_start_directory">Ke direktori awal</string>
|
||||
<string name="action_show_lyrics">Tampilkan lirik</string>
|
||||
<string name="light_theme_name">Terang</string>
|
||||
<string name="dark_theme_name">Gelap</string>
|
||||
|
|
@ -207,18 +204,10 @@
|
|||
<string name="open_playing_queue_instruction">Geser ke atas pada kartu di layar yang sedang memutar untuk memperlihatkan dengan lengkap antrean yang sedang diputar.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Atur ulang antrean yang sedang diputar dengan menyeret lagu dari nomor urut.</string>
|
||||
<string name="library">Pustaka</string>
|
||||
<string name="folders">Map-map</string>
|
||||
<string name="saved_playlist_to">Daftar putar tersimpan ke %s.</string>
|
||||
<string name="failed_to_save_playlist">Gagal untuk menyimpan daftar putar (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">%1$d daftar putar disimpan ke %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">%1$d daftar putar disimpan ke %2$s, gagal menyimpan %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> tidak tercatat di toko media.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Beberapa berkas tidak tercatat di media penyimpanan.</string>
|
||||
<string name="nothing_to_scan">Tidak ada untuk di pindai.</string>
|
||||
<string name="scanned_files">%1$d dari %2$d berkas terpindai.</string>
|
||||
<string name="could_not_scan_files">Tidak dapat memindai %d berkas.</string>
|
||||
<string name="listing_files">Mencatat berkas-berkas</string>
|
||||
<string name="new_start_directory">%s adalah direktori awal yang baru.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Besar</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Klasik</string>
|
||||
<string name="app_widget_small_name">Phonograph - Kecil</string>
|
||||
|
|
@ -255,7 +244,6 @@
|
|||
<string name="only_the_first_5_colors_available">Hanya 5 warna pertama yang tersedia untuk versi gratis.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Tema gelap adalah fitur Phonograph Pro.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Pengatur waktu tidur adalah fitur Phonograph Pro</string>
|
||||
<string name="folder_view_is_a_pro_feature">Tampilan folder adalah fitur Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">Memulihkan pembelian...</string>
|
||||
<string name="could_not_restore_purchase">Tidak dapat memulihkan pembelian.</string>
|
||||
<string name="purchase">Pembelian</string>
|
||||
|
|
@ -275,8 +263,6 @@
|
|||
<string name="library_categories">Kategori perpustakaan</string>
|
||||
<string name="pref_summary_library_categories">Konfigurasi visibilitas dan urutan kategori perpustakaan.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Anda harus memilih setidaknya satu kategori</string>
|
||||
<string name="action_scan_directory">Pindai direktori</string>
|
||||
<string name="scan_media">Pindai media</string>
|
||||
<string name="action_sort_order">Tata urutan</string>
|
||||
<string name="sort_order_a_z">Naik</string>
|
||||
<string name="sort_order_z_a">Turun</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Rincian</string>
|
||||
<string name="action_rename">Ganti Nama</string>
|
||||
<string name="action_delete">Hapus</string>
|
||||
<string name="action_scan">Pindai</string>
|
||||
<string name="action_set_as_start_directory">Atur sebagai direktori awal</string>
|
||||
<string name="albums">Album-album</string>
|
||||
<string name="artists">Artis</string>
|
||||
<string name="genres">Aliran</string>
|
||||
|
|
@ -89,7 +87,6 @@
|
|||
<string name="action_shuffle_playlist">Putar daftar putar secara acak</string>
|
||||
<string name="action_clear_playing_queue">Kosongkan antrean yang sedang diputar</string>
|
||||
<string name="action_save_playing_queue">Menyimpan antrian yang diputar</string>
|
||||
<string name="action_go_to_start_directory">Ke direktori awal</string>
|
||||
<string name="action_show_lyrics">Tampilkan lirik</string>
|
||||
<string name="light_theme_name">Terang</string>
|
||||
<string name="dark_theme_name">Gelap</string>
|
||||
|
|
@ -207,18 +204,10 @@
|
|||
<string name="open_playing_queue_instruction">Geser ke atas pada kartu di layar yang sedang memutar untuk memperlihatkan dengan lengkap antrean yang sedang diputar.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Atur ulang antrean yang sedang diputar dengan menyeret lagu dari nomor urut.</string>
|
||||
<string name="library">Pustaka</string>
|
||||
<string name="folders">Map-map</string>
|
||||
<string name="saved_playlist_to">Daftar putar tersimpan ke %s.</string>
|
||||
<string name="failed_to_save_playlist">Gagal untuk menyimpan daftar putar (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">%1$d daftar putar disimpan ke %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">%1$d daftar putar disimpan ke %2$s, gagal menyimpan %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> tidak tercatat di toko media.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Beberapa berkas tidak tercatat di media penyimpanan.</string>
|
||||
<string name="nothing_to_scan">Tidak ada untuk di pindai.</string>
|
||||
<string name="scanned_files">%1$d dari %2$d berkas terpindai.</string>
|
||||
<string name="could_not_scan_files">Tidak dapat memindai %d berkas.</string>
|
||||
<string name="listing_files">Mencatat berkas-berkas</string>
|
||||
<string name="new_start_directory">%s adalah direktori awal yang baru.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Besar</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Klasik</string>
|
||||
<string name="app_widget_small_name">Phonograph - Kecil</string>
|
||||
|
|
@ -255,7 +244,6 @@
|
|||
<string name="only_the_first_5_colors_available">Hanya 5 warna pertama yang tersedia untuk versi gratis.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Tema gelap adalah fitur Phonograph Pro.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Pengatur waktu tidur adalah fitur Phonograph Pro</string>
|
||||
<string name="folder_view_is_a_pro_feature">Tampilan folder adalah fitur Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">Memulihkan pembelian...</string>
|
||||
<string name="could_not_restore_purchase">Tidak dapat memulihkan pembelian.</string>
|
||||
<string name="purchase">Pembelian</string>
|
||||
|
|
@ -275,8 +263,6 @@
|
|||
<string name="library_categories">Kategori perpustakaan</string>
|
||||
<string name="pref_summary_library_categories">Konfigurasi visibilitas dan urutan kategori perpustakaan.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Anda harus memilih setidaknya satu kategori</string>
|
||||
<string name="action_scan_directory">Pindai direktori</string>
|
||||
<string name="scan_media">Pindai media</string>
|
||||
<string name="action_sort_order">Tata urutan</string>
|
||||
<string name="sort_order_a_z">Naik</string>
|
||||
<string name="sort_order_z_a">Turun</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Dettagli</string>
|
||||
<string name="action_rename">Rinomina</string>
|
||||
<string name="action_delete">Elimina</string>
|
||||
<string name="action_scan">Fai una scansione</string>
|
||||
<string name="action_set_as_start_directory">Imposta come directory iniziale</string>
|
||||
<string name="albums">Album</string>
|
||||
<string name="artists">Artisti</string>
|
||||
<string name="genres">Generi</string>
|
||||
|
|
@ -89,7 +87,6 @@
|
|||
<string name="action_shuffle_playlist">Riproduzione casuale playlist</string>
|
||||
<string name="action_clear_playing_queue">Svuota coda di riproduzione</string>
|
||||
<string name="action_save_playing_queue">Salva la coda di riproduzione</string>
|
||||
<string name="action_go_to_start_directory">Vai alla directory iniziale</string>
|
||||
<string name="action_show_lyrics">Mostra testo</string>
|
||||
<string name="light_theme_name">Chiaro</string>
|
||||
<string name="dark_theme_name">Scuro</string>
|
||||
|
|
@ -207,18 +204,10 @@
|
|||
<string name="open_playing_queue_instruction">Fai uno swipe sulla card nella schermata In riproduzione per mostrare l\'intera coda di riproduzione.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Riorganizza la coda di riproduzione trascinando una canzone dal suo numero di traccia.</string>
|
||||
<string name="library">Libreria</string>
|
||||
<string name="folders">Cartelle</string>
|
||||
<string name="saved_playlist_to">Playlist salvata in %s.</string>
|
||||
<string name="failed_to_save_playlist">Salvataggio playlist fallito (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">Salvate %1$d playlist in %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">Salvate %1$d playlist in %2$s, %3$d non salvato.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> non è elencato nel media store.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Alcuni file non sono elencati nel media store.</string>
|
||||
<string name="nothing_to_scan">Nulla da scansionare.</string>
|
||||
<string name="scanned_files">Scansione effettuata per %1$d su %2$d file.</string>
|
||||
<string name="could_not_scan_files">Non è stato possibile effettuare la scansione di %d file.</string>
|
||||
<string name="listing_files">Creazione elenco dei file</string>
|
||||
<string name="new_start_directory">%s è la nuova directory iniziale.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Grande</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Classico</string>
|
||||
<string name="app_widget_small_name">Phonograph - Piccolo</string>
|
||||
|
|
@ -256,7 +245,6 @@
|
|||
<string name="only_the_first_5_colors_available">Solo i primi cinque colori sono disponibili nella versione gratuita.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Il tema scuro è una funzionalità di Phonograph Pro.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Il timer di spegnimento è una funzionalità di Phonograph Pro.</string>
|
||||
<string name="folder_view_is_a_pro_feature">La visualizzazione delle cartelle è una funzionalità di Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">Ripristinando l\'acquisto...</string>
|
||||
<string name="could_not_restore_purchase">Impossibile ripristinare l\'acquisto.</string>
|
||||
<string name="purchase">Acquista</string>
|
||||
|
|
@ -276,8 +264,6 @@
|
|||
<string name="library_categories">Categorie libreria</string>
|
||||
<string name="pref_summary_library_categories">Configura visibilità e ordine delle categorie della libreria.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Devi scegliere almeno una categoria.</string>
|
||||
<string name="action_scan_directory">Scansiona cartella</string>
|
||||
<string name="scan_media">Scansiona media</string>
|
||||
<string name="action_sort_order">Ordine</string>
|
||||
<string name="sort_order_a_z">Ascendente</string>
|
||||
<string name="sort_order_z_a">Discendente</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">פרטים</string>
|
||||
<string name="action_rename">שנה שם</string>
|
||||
<string name="action_delete">מחק</string>
|
||||
<string name="action_scan">סרוק</string>
|
||||
<string name="action_set_as_start_directory">הגדר כנתיב התחלתי</string>
|
||||
<string name="albums">אלבומים</string>
|
||||
<string name="artists">אמנים</string>
|
||||
<string name="genres">סגנונות</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">ערבב רשימת השמעה</string>
|
||||
<string name="action_clear_playing_queue">איפוס תור השמעה</string>
|
||||
<string name="action_save_playing_queue">שמור תור פעיל</string>
|
||||
<string name="action_go_to_start_directory">עבור לנתיב התחלתי</string>
|
||||
<string name="action_show_lyrics">הצג מילים</string>
|
||||
<string name="light_theme_name">בהיר</string>
|
||||
<string name="dark_theme_name">כהה</string>
|
||||
|
|
@ -203,18 +200,10 @@
|
|||
<string name="open_playing_queue_instruction">החלק את הכרטיס למעלה במסך \'מנגן כעת\' כדי לחשוף את תור ההשמעה המלא.</string>
|
||||
<string name="rearrange_playing_queue_instruction">מיין מחדש את התור על ידי גרירת השיר מהמספר שלו.</string>
|
||||
<string name="library">ספריה</string>
|
||||
<string name="folders">תיקיות</string>
|
||||
<string name="saved_playlist_to">רשימת ההשמעה נשמרה ל-%s.</string>
|
||||
<string name="failed_to_save_playlist">לא ניתן היה לשמור את רשימת ההשמעה (%s)</string>
|
||||
<string name="saved_x_playlists_to_x">נשמרו %1$d רשימות השמעה ל-%2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">נשמרו %1$d רשימות השמעה ל-%2$s. לא ניתן היה לשמור %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> לא רשום בחנות המדיה.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">קבצים מסוימים לא רשומים בחנות המדיה.</string>
|
||||
<string name="nothing_to_scan">אין כלום לסרוק.</string>
|
||||
<string name="scanned_files">נסרקו %1$d מתוך %2$d קבצים.</string>
|
||||
<string name="could_not_scan_files">לא ניתן היה לסרוק %d קבצים.</string>
|
||||
<string name="listing_files">מבצע רישום קבצים</string>
|
||||
<string name="new_start_directory">%s הוא כעת נתיב ההתחלה החדש.</string>
|
||||
<string name="app_widget_big_name">Phonograph - גדול</string>
|
||||
<string name="app_widget_classic_name">Phonograph - קלאסי</string>
|
||||
<string name="app_widget_small_name">Phonograph - קטן</string>
|
||||
|
|
@ -251,7 +240,6 @@
|
|||
<string name="only_the_first_5_colors_available">רק 5 הצבעים הראשונים זמינים בגרסה החינמית.</string>
|
||||
<string name="black_theme_is_a_pro_feature">ערכת הנושא השחורה היא אפשרות הזמינה ב-Phonograph Pro בלבד.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">טיימר לשינה הוא אפשרות הזמינה ב-Phonograph Pro בלבד.</string>
|
||||
<string name="folder_view_is_a_pro_feature">תצוגת תיקיות היא אפשרות הזמינה ב-Phonograph Pro בלבד.</string>
|
||||
<string name="restoring_purchase">משחזר רכישה...</string>
|
||||
<string name="could_not_restore_purchase">לא ניתן לשחזר רכישה.</string>
|
||||
<string name="purchase">קנה</string>
|
||||
|
|
@ -271,8 +259,6 @@
|
|||
<string name="library_categories">קטגוריות הספרייה</string>
|
||||
<string name="pref_summary_library_categories">הגדר את הנראות והסדר של הקטגוריות בספרייה.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">עליך לבחור לפחות קטגוריה אחת.</string>
|
||||
<string name="action_scan_directory">סרוק ספרייה</string>
|
||||
<string name="scan_media">סרוק מדיה</string>
|
||||
<string name="action_sort_order">סדר המיון</string>
|
||||
<string name="sort_order_a_z">סדר עולה</string>
|
||||
<string name="sort_order_z_a">סדר יורד</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">詳細情報</string>
|
||||
<string name="action_rename">名前の変更</string>
|
||||
<string name="action_delete">削除</string>
|
||||
<string name="action_scan">端末をスキャン</string>
|
||||
<string name="action_set_as_start_directory">初期ディレクトリに設定</string>
|
||||
<string name="albums">アルバム</string>
|
||||
<string name="artists">アーティスト</string>
|
||||
<string name="genres">ジャンル</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">プレイリストをシャッフル</string>
|
||||
<string name="action_clear_playing_queue">再生キューを消去</string>
|
||||
<string name="action_save_playing_queue">再生キューを保存</string>
|
||||
<string name="action_go_to_start_directory">初期ディレクトリに移動</string>
|
||||
<string name="action_show_lyrics">歌詞を表示</string>
|
||||
<string name="light_theme_name">ライト</string>
|
||||
<string name="dark_theme_name">ダーク</string>
|
||||
|
|
@ -203,18 +200,10 @@
|
|||
<string name="open_playing_queue_instruction">カードをスワイプすると再生中のスクリーンから再生キューのページに移動します。</string>
|
||||
<string name="rearrange_playing_queue_instruction">トラック番号をドラッグして再生キューの曲を並び替えることができます。</string>
|
||||
<string name="library">ライブラリ</string>
|
||||
<string name="folders">フォルダ</string>
|
||||
<string name="saved_playlist_to">プレイリストを%sに保存しました。</string>
|
||||
<string name="failed_to_save_playlist">プレイリスト(%s)の保存に失敗しました。</string>
|
||||
<string name="saved_x_playlists_to_x">%1$dプレイリストを%2$sに保存しました</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">%1$dプレイリストを%2$sに保存しました、%3$dに保存できませんでした。</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b>はメディアストアにリストされていません。]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">メディアストアに追加されていないファイルがあります。</string>
|
||||
<string name="nothing_to_scan">スキャンするものがありません。</string>
|
||||
<string name="scanned_files">%1$d中の%2$dをスキャンしました。</string>
|
||||
<string name="could_not_scan_files">%d個のファイルをスキャンできませんでした。</string>
|
||||
<string name="listing_files">リストされたファイル</string>
|
||||
<string name="new_start_directory">%sは新しい初期ディレクトリです。</string>
|
||||
<string name="app_widget_big_name">Phonograph - ビッグ</string>
|
||||
<string name="app_widget_classic_name">Phonograph - クラシック</string>
|
||||
<string name="app_widget_small_name">Phonograph - 小さく</string>
|
||||
|
|
@ -251,7 +240,6 @@
|
|||
<string name="only_the_first_5_colors_available">無料版では5色のみ利用可能です。</string>
|
||||
<string name="black_theme_is_a_pro_feature">黒テーマはPhonograph Proの機能です。</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">スリープ タイマーはPhonograph Proの機能です。</string>
|
||||
<string name="folder_view_is_a_pro_feature">フォルダー ビューはPhonograph Proの機能です。</string>
|
||||
<string name="restoring_purchase">購入を復元中…</string>
|
||||
<string name="could_not_restore_purchase">購入情報を復元できませんでした。</string>
|
||||
<string name="purchase">購入</string>
|
||||
|
|
@ -271,8 +259,6 @@
|
|||
<string name="library_categories">ライブラリのカテゴリ</string>
|
||||
<string name="pref_summary_library_categories">ライブラリに表示するカテゴリとその順番を設定します。</string>
|
||||
<string name="you_have_to_select_at_least_one_category">最低でも1つのカテゴリを選択を選択してください</string>
|
||||
<string name="action_scan_directory">ディレクトリをスキャン</string>
|
||||
<string name="scan_media">メディアをスキャン</string>
|
||||
<string name="action_sort_order">並べ替え</string>
|
||||
<string name="sort_order_a_z">昇順</string>
|
||||
<string name="sort_order_z_a">降順</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">세부 정보</string>
|
||||
<string name="action_rename">이름 변경</string>
|
||||
<string name="action_delete">삭제</string>
|
||||
<string name="action_scan">미디어 스캔</string>
|
||||
<string name="action_set_as_start_directory">시작 디렉토리로 설정</string>
|
||||
<string name="albums">앨범</string>
|
||||
<string name="artists">아티스트</string>
|
||||
<string name="genres">장르</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">재생 목록 랜덤 재생</string>
|
||||
<string name="action_clear_playing_queue">재생 대기열 비우기</string>
|
||||
<string name="action_save_playing_queue">재생 대기열 저장</string>
|
||||
<string name="action_go_to_start_directory">시작 디렉토리로 가기</string>
|
||||
<string name="action_show_lyrics">가사 보기</string>
|
||||
<string name="light_theme_name">밝은 테마</string>
|
||||
<string name="dark_theme_name">어두운 테마</string>
|
||||
|
|
@ -205,18 +202,10 @@
|
|||
<string name="open_playing_queue_instruction">재생 중 화면 하단의 카드를 쓸어올려 재생 대기열을 표시할 수 있습니다.</string>
|
||||
<string name="rearrange_playing_queue_instruction">재생 대기열의 순서를 변경하려면 곡 번호를 잡고 드래그하세요.</string>
|
||||
<string name="library">보관함</string>
|
||||
<string name="folders">폴더</string>
|
||||
<string name="saved_playlist_to">재생 목록을 %s 로 저장했습니다.</string>
|
||||
<string name="failed_to_save_playlist">재생 목록을 저장하는 과정에서 오류가 발생했습니다. (%s)</string>
|
||||
<string name="saved_x_playlists_to_x">%1$d 재생목록을 %2$s에 저장함.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">%1$d 재생목록을 %2$s에 저장함 / %3$d 저장 실패</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[미디어 스토어에서 <b>%s</b> 을(를) 찾을 수 없습니다.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">몇몇 파일은 미디어 리스트에 기록되지 않습니다.</string>
|
||||
<string name="nothing_to_scan">스캔할 내용이 없습니다.</string>
|
||||
<string name="scanned_files">%2$d 개 중 %1$d 개 파일 스캔</string>
|
||||
<string name="could_not_scan_files">%d 개 파일을 스캔하지 못했습니다.</string>
|
||||
<string name="listing_files">파일 나열 중</string>
|
||||
<string name="new_start_directory">%s 이(가) 새 시작 디렉토리로 설정되었습니다.</string>
|
||||
<string name="app_widget_big_name">Phonograph - 대형</string>
|
||||
<string name="app_widget_classic_name">Phonograph - 클래식</string>
|
||||
<string name="app_widget_small_name">Phonograph - 소형</string>
|
||||
|
|
@ -253,7 +242,6 @@
|
|||
<string name="only_the_first_5_colors_available">무료 버전에서는 첫 5개의 색상만 선택 가능합니다.</string>
|
||||
<string name="black_theme_is_a_pro_feature">검정 테마는 프로 기능입니다.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">수면 타이머는 프로 기능입니다.</string>
|
||||
<string name="folder_view_is_a_pro_feature">폴더 보기는 프로 기능입니다.</string>
|
||||
<string name="restoring_purchase">구매 내역을 복원하는 중…</string>
|
||||
<string name="could_not_restore_purchase">구매 내역을 복원하지 못했습니다.</string>
|
||||
<string name="purchase">구매하기</string>
|
||||
|
|
@ -273,8 +261,6 @@
|
|||
<string name="library_categories">라이브러리 카테고리</string>
|
||||
<string name="pref_summary_library_categories">라이브러리 카테고리의 표시 여부 및 배열 순서를 조정합니다.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">적어도 하나의 카테고리는 선택해야 합니다.</string>
|
||||
<string name="action_scan_directory">디렉토리 스캔하기</string>
|
||||
<string name="scan_media">미디어 스캔</string>
|
||||
<string name="action_sort_order">순서 정렬하기</string>
|
||||
<string name="sort_order_a_z">오름차순</string>
|
||||
<string name="sort_order_z_a">내림차순</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Details</string>
|
||||
<string name="action_rename">Hernoemen</string>
|
||||
<string name="action_delete">Verwijderen</string>
|
||||
<string name="action_scan">Scannen</string>
|
||||
<string name="action_set_as_start_directory">Instellen als startmap</string>
|
||||
<string name="albums">Albums</string>
|
||||
<string name="artists">Artiesten</string>
|
||||
<string name="genres">Genres</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">Shuffle afspeellijst</string>
|
||||
<string name="action_clear_playing_queue">Leeg afspeelwachtrij</string>
|
||||
<string name="action_save_playing_queue">Afspeelwachtrij opslaan</string>
|
||||
<string name="action_go_to_start_directory">Ga naar startmap</string>
|
||||
<string name="action_show_lyrics">Toon songtekst</string>
|
||||
<string name="light_theme_name">Licht</string>
|
||||
<string name="dark_theme_name">Donker</string>
|
||||
|
|
@ -203,18 +200,10 @@
|
|||
<string name="open_playing_queue_instruction">Veeg de kaart in het afspeelscherm om de afspeelwachtrij te weergeven.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Rangschik de afspeelwachtrij door de afspeelnummers te verslepen.</string>
|
||||
<string name="library">Bibliotheek</string>
|
||||
<string name="folders">Mappen</string>
|
||||
<string name="saved_playlist_to">Afspeellijst opgeslagen in %s.</string>
|
||||
<string name="failed_to_save_playlist">Opslaan van afspeellijst (%s) mislukt.</string>
|
||||
<string name="saved_x_playlists_to_x">%1$d afspeellijsten opgeslagen in %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">%1$d afspeellijsten opgeslagen in %2$s, opslaan van %3$d mislukt.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> is niet aanwezig in mediaopslag.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Sommige bestanden worden niet vermeld in de mediaopslag.</string>
|
||||
<string name="nothing_to_scan">Niets te scannen.</string>
|
||||
<string name="scanned_files">%1$d van de %2$d bestanden gescand.</string>
|
||||
<string name="could_not_scan_files">Kan %d bestanden niet scannen.</string>
|
||||
<string name="listing_files">Bestandslijst maken</string>
|
||||
<string name="new_start_directory">%s is de nieuwe startmap</string>
|
||||
<string name="app_widget_big_name">Phonograph - Groot</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Klassiek</string>
|
||||
<string name="app_widget_small_name">Phonograph - Klein</string>
|
||||
|
|
@ -251,7 +240,6 @@
|
|||
<string name="only_the_first_5_colors_available">Alleen de eerste 5 kleuren zijn beschikbaar in de gratis versie.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Het zwarte thema is een Phonograph Pro functie.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Slaaptimer is een Phonograph Pro functie.</string>
|
||||
<string name="folder_view_is_a_pro_feature">Mappenweergave is een Phonograph Pro functie.</string>
|
||||
<string name="restoring_purchase">Aankoop herstellen…</string>
|
||||
<string name="could_not_restore_purchase">Kan aankoop niet herstellen.</string>
|
||||
<string name="purchase">Koop</string>
|
||||
|
|
@ -271,8 +259,6 @@
|
|||
<string name="library_categories">Bibliotheek categorieën</string>
|
||||
<string name="pref_summary_library_categories">Configureer de zichtbaarheid en volgorde van categorieën</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Je moet tenminste één categorie selecteren.</string>
|
||||
<string name="action_scan_directory">Map scannen</string>
|
||||
<string name="scan_media">Media scannen</string>
|
||||
<string name="action_sort_order">Sorteervolgorde</string>
|
||||
<string name="sort_order_a_z">Oplopend</string>
|
||||
<string name="sort_order_z_a">Aflopend</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Szczegóły</string>
|
||||
<string name="action_rename">Zmień nazwę</string>
|
||||
<string name="action_delete">Usuń</string>
|
||||
<string name="action_scan">Skanuj</string>
|
||||
<string name="action_set_as_start_directory">Ustaw jako katalog startowy</string>
|
||||
<string name="albums">Albumy</string>
|
||||
<string name="artists">Wykonawcy</string>
|
||||
<string name="genres">Gatunki</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">Losowa lista odtwarzania</string>
|
||||
<string name="action_clear_playing_queue">Wyczyść kolejkę odtwarzania</string>
|
||||
<string name="action_save_playing_queue">Zapisz obecnie odtwarzaną kolejkę</string>
|
||||
<string name="action_go_to_start_directory">Przejdź do katalogu startowego</string>
|
||||
<string name="action_show_lyrics">Pokaż teksty</string>
|
||||
<string name="light_theme_name">Jasny</string>
|
||||
<string name="dark_theme_name">Ciemny</string>
|
||||
|
|
@ -203,18 +200,10 @@
|
|||
<string name="open_playing_queue_instruction">Przesuń kartę na ekranie Obecnie Grane w górę, aby odsłonić pełną kolejkę odtwarzania</string>
|
||||
<string name="rearrange_playing_queue_instruction">Zmień kolejność odtwarzania, przeciągając numer utworu w górę lub w dół kolejki</string>
|
||||
<string name="library">Biblioteka</string>
|
||||
<string name="folders">Foldery</string>
|
||||
<string name="saved_playlist_to">Zapisz listę odtwarzania do %s</string>
|
||||
<string name="failed_to_save_playlist">Błąd podczas zapisywania listy odtwarzania (%s)</string>
|
||||
<string name="saved_x_playlists_to_x">Zapisano %1$d playliste w %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">Zapisano %1$d playlistę w %2$s, niepowodzenie zapisu %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> nie figuruje w Media Store]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Niektóre pliki nie figuruje w Media Store.</string>
|
||||
<string name="nothing_to_scan">Nie ma nic do skanowania</string>
|
||||
<string name="scanned_files">Przeskanowano %1$d z %2$d plików</string>
|
||||
<string name="could_not_scan_files">Nie można przeskanować %d plików</string>
|
||||
<string name="listing_files">Lista plików</string>
|
||||
<string name="new_start_directory">%s jest nowym folderem startowym</string>
|
||||
<string name="app_widget_big_name">Phonograph - Duży</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Klasyczny</string>
|
||||
<string name="app_widget_small_name">Phonograph - Mały</string>
|
||||
|
|
@ -251,7 +240,6 @@
|
|||
<string name="only_the_first_5_colors_available">Tylko 5 pierwszych kolorów jest dostępnych w darmowej wersji.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Czarny motyw jest funkcją Phonograph Pro.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Wyłączenie czasowe jest funkcją Phonograph Pro.</string>
|
||||
<string name="folder_view_is_a_pro_feature">Widok folderów jest funkcją Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">Przywracanie zakupu...</string>
|
||||
<string name="could_not_restore_purchase">Nie można przywrócić zakupu.</string>
|
||||
<string name="purchase">Zakup</string>
|
||||
|
|
@ -271,8 +259,6 @@
|
|||
<string name="library_categories">Kategorie biblioteki</string>
|
||||
<string name="pref_summary_library_categories">Ustawia widoczność i kolejność kategorii biblioteki</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Musisz wybrać co najmniej jedną kategorię</string>
|
||||
<string name="action_scan_directory">Skanuj ścieżkę</string>
|
||||
<string name="scan_media">Skanuj media</string>
|
||||
<string name="action_sort_order">Kolejność sortowania</string>
|
||||
<string name="sort_order_a_z">Rosnąco</string>
|
||||
<string name="sort_order_z_a">Malejąco</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Detalhes</string>
|
||||
<string name="action_rename">Renomear</string>
|
||||
<string name="action_delete">Excluir</string>
|
||||
<string name="action_scan">Escanear</string>
|
||||
<string name="action_set_as_start_directory">Definir como tela inicial</string>
|
||||
<string name="albums">Álbuns</string>
|
||||
<string name="artists">Artistas</string>
|
||||
<string name="genres">Gêneros</string>
|
||||
|
|
@ -89,7 +87,6 @@
|
|||
<string name="action_shuffle_playlist">Misturar playlist</string>
|
||||
<string name="action_clear_playing_queue">Limpar fila de reprodução</string>
|
||||
<string name="action_save_playing_queue">Salvar fila de reprodução</string>
|
||||
<string name="action_go_to_start_directory">Ir para a pasta inicial</string>
|
||||
<string name="action_show_lyrics">Mostrar letras</string>
|
||||
<string name="light_theme_name">Claro</string>
|
||||
<string name="dark_theme_name">Escuro</string>
|
||||
|
|
@ -207,18 +204,10 @@
|
|||
<string name="open_playing_queue_instruction">Arraste para cima o card da tela de reprodução para mostrar a lista de reprodução completa.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Mude as músicas de lugar na fila pressionando-as e arrastando-as de seu número de faixa.</string>
|
||||
<string name="library">Biblioteca</string>
|
||||
<string name="folders">Pastas</string>
|
||||
<string name="saved_playlist_to">Salvo à playlist %s.</string>
|
||||
<string name="failed_to_save_playlist">Erro ao salvar a playlist (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">Salvado % 1 $ d lista de reprodução para%2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">Salvado %1$d listas de reprodução para %2$s, não foi possível salvar %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> não está listado no armazenamento de mídia.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Alguns arquivos não estão listados no armazenamento de mídia.</string>
|
||||
<string name="nothing_to_scan">Nada para escanear.</string>
|
||||
<string name="scanned_files">Foram escaneados %1$d dos arquivos %2$d.</string>
|
||||
<string name="could_not_scan_files">Não foi possível escanear os arquivos em %d.</string>
|
||||
<string name="listing_files">Listando arquivos</string>
|
||||
<string name="new_start_directory">%s é a nova pasta inicial.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Grande</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Clássico</string>
|
||||
<string name="app_widget_small_name">Phonograph - Pequeno</string>
|
||||
|
|
@ -255,7 +244,6 @@
|
|||
<string name="only_the_first_5_colors_available">Apenas as primeiras 5 cores estão disponíveis na versão grátis.</string>
|
||||
<string name="black_theme_is_a_pro_feature">O tema escuro é um recurso da versão Pro do Phonograph.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Temporizador de soneca é um recurso da versão Pro do Phonograph</string>
|
||||
<string name="folder_view_is_a_pro_feature">Visualização de pastas é um recurso da versão Pro do Phonograph.</string>
|
||||
<string name="restoring_purchase">Restituindo compra...</string>
|
||||
<string name="could_not_restore_purchase">Não foi possível restituir a compra.</string>
|
||||
<string name="purchase">Comprar</string>
|
||||
|
|
@ -275,8 +263,6 @@
|
|||
<string name="library_categories">Categorias da biblioteca</string>
|
||||
<string name="pref_summary_library_categories">Configurar a visibilidade e a ordem das categorias da biblioteca.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Você deve selecionar ao menos uma categoria.</string>
|
||||
<string name="action_scan_directory">Escanear pasta</string>
|
||||
<string name="scan_media">Escanear mídia</string>
|
||||
<string name="action_sort_order">Embaralhar ordem</string>
|
||||
<string name="sort_order_a_z">Ascendente</string>
|
||||
<string name="sort_order_z_a">Descendente</string>
|
||||
|
|
|
|||
|
|
@ -22,8 +22,6 @@
|
|||
<string name="action_details">Detalhes</string>
|
||||
<string name="action_rename">Mudar nome</string>
|
||||
<string name="action_delete">Apagar</string>
|
||||
<string name="action_scan">Verificar</string>
|
||||
<string name="action_set_as_start_directory">Definir como diretoria principal</string>
|
||||
<string name="albums">Álbuns</string>
|
||||
<string name="artists">Artistas</string>
|
||||
<string name="songs">Músicas</string>
|
||||
|
|
@ -80,7 +78,6 @@
|
|||
<string name="action_shuffle_artist">Embaralhar Artista</string>
|
||||
<string name="action_shuffle_playlist">Embaralhar lista de reprodução</string>
|
||||
<string name="action_clear_playing_queue">Limpar fila de reprodução</string>
|
||||
<string name="action_go_to_start_directory">Ir para diretoria principal</string>
|
||||
<string name="action_show_lyrics">Mostrar letra</string>
|
||||
<string name="light_theme_name">Claro</string>
|
||||
<string name="dark_theme_name">Escuro</string>
|
||||
|
|
@ -171,13 +168,8 @@
|
|||
<string name="open_playing_queue_instruction">Deslize o cartão no ecrã de \"a reproduzir\" para cima para mostrar a fila de reprodução completa.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Reorganizar a fila de reprodução arrastando a música desde o seu número</string>
|
||||
<string name="library">Biblioteca</string>
|
||||
<string name="folders">Pastas</string>
|
||||
<string name="saved_playlist_to">Lista de reprodução %s salva.</string>
|
||||
<string name="failed_to_save_playlist">Erro a salvar a lista de reprodução (%s).</string>
|
||||
<string name="nothing_to_scan">Nada para verificar.</string>
|
||||
<string name="scanned_files">Verificados %1$d de %2$d ficheiros.</string>
|
||||
<string name="could_not_scan_files">Não é possível verificar %d ficheiros.</string>
|
||||
<string name="new_start_directory">%s é a nova diretoria principal</string>
|
||||
<string name="app_widget_big_name">Phonograph - Grande</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Clássico</string>
|
||||
<string name="app_widget_small_name">Phonograph - Pequeno</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Detalii</string>
|
||||
<string name="action_rename">Redenumire</string>
|
||||
<string name="action_delete">Ştergeţi</string>
|
||||
<string name="action_scan">Scanează</string>
|
||||
<string name="action_set_as_start_directory">Setaţi ca dosar de pornire</string>
|
||||
<string name="albums">Albume</string>
|
||||
<string name="artists">Artiști</string>
|
||||
<string name="genres">Genuri</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">Amestecare listă de redare</string>
|
||||
<string name="action_clear_playing_queue">Golește lista de redare</string>
|
||||
<string name="action_save_playing_queue">Salvați lista de redare</string>
|
||||
<string name="action_go_to_start_directory">Du-te la directorul de pornire</string>
|
||||
<string name="action_show_lyrics">Arată versuri</string>
|
||||
<string name="light_theme_name">Light (Alb)</string>
|
||||
<string name="dark_theme_name">Dark (Negru)</string>
|
||||
|
|
@ -203,18 +200,10 @@
|
|||
<string name="open_playing_queue_instruction">Glisați cardul în ecranul de redare acum pentru a afișa coada de redare completă.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Rearanjați coada de redare prin glisarea unei melodii de la numărul piesei sale.</string>
|
||||
<string name="library">Bibliotecă</string>
|
||||
<string name="folders">Dosare</string>
|
||||
<string name="saved_playlist_to">Listă de redare salvată în %s.</string>
|
||||
<string name="failed_to_save_playlist">Salvarea listei de redare (%s) a eșuat.</string>
|
||||
<string name="saved_x_playlists_to_x">Au fost salvate %1$d liste de redare în %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">Au fost salvate %1$d liste de redare în %2$s, salvarea %3$d eșuând.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> nu este listat(ă) în stocarea media.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Unele fișiere nu sunt afișate în librăria media.</string>
|
||||
<string name="nothing_to_scan">Nimic de scanat.</string>
|
||||
<string name="scanned_files">Scanate %1$d din %2$d fişiere.</string>
|
||||
<string name="could_not_scan_files">Nu s-au putut scana %d fişiere.</string>
|
||||
<string name="listing_files">Listare fişiere</string>
|
||||
<string name="new_start_directory">%s este noul director de pornire.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Mare</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Clasic</string>
|
||||
<string name="app_widget_small_name">Phonograph - Mic</string>
|
||||
|
|
@ -251,7 +240,6 @@
|
|||
<string name="only_the_first_5_colors_available">Numai primele 5 culori sunt disponibile în versiunea gratuită.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Tema întunecată este disponibilă doar în versiunea Phonograph Pro.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Temporizatorul este disponibil doar în versiunea Phonograph Pro</string>
|
||||
<string name="folder_view_is_a_pro_feature">Afișarea dosarelor este disponibilă doar în versiunea Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">Se restabilește achiziția...</string>
|
||||
<string name="could_not_restore_purchase">Nu a putut fi restabilită achiziția.</string>
|
||||
<string name="purchase">Cumpărare</string>
|
||||
|
|
@ -271,8 +259,6 @@
|
|||
<string name="library_categories">Categorii</string>
|
||||
<string name="pref_summary_library_categories">Configurați vizibilitatea și ordinea categoriilor din bibliotecă.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Trebuie să selectați cel puțin o categorie.</string>
|
||||
<string name="action_scan_directory">Scaneaza locatia</string>
|
||||
<string name="scan_media">scanare media</string>
|
||||
<string name="action_sort_order">Ordine de sortare</string>
|
||||
<string name="sort_order_a_z">crescător</string>
|
||||
<string name="sort_order_z_a">descrescător</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Подробнее</string>
|
||||
<string name="action_rename">Переименовать</string>
|
||||
<string name="action_delete">Удалить</string>
|
||||
<string name="action_scan">Сканировать</string>
|
||||
<string name="action_set_as_start_directory">Назначить начальной директорией</string>
|
||||
<string name="albums">Альбомы</string>
|
||||
<string name="artists">Исполнители</string>
|
||||
<string name="genres">Жанры</string>
|
||||
|
|
@ -89,7 +87,6 @@
|
|||
<string name="action_shuffle_playlist">Перемешать плейлист</string>
|
||||
<string name="action_clear_playing_queue">"Очистить очередь воспроизведения "</string>
|
||||
<string name="action_save_playing_queue">Сохранить очередь воспроизведения</string>
|
||||
<string name="action_go_to_start_directory">Перейти к начальной директории</string>
|
||||
<string name="action_show_lyrics">Показать текст песни</string>
|
||||
<string name="light_theme_name">Светлая</string>
|
||||
<string name="dark_theme_name">Тёмная</string>
|
||||
|
|
@ -207,18 +204,10 @@
|
|||
<string name="open_playing_queue_instruction">Проведите по карточке на экране воспроизведения, чтобы просмотреть очередь</string>
|
||||
<string name="rearrange_playing_queue_instruction">Редактируйте очередь воспроизведения, перетаскивая песни за их номер</string>
|
||||
<string name="library">"Библиотека "</string>
|
||||
<string name="folders">Папки</string>
|
||||
<string name="saved_playlist_to">"Плейлист сохранён в %s "</string>
|
||||
<string name="failed_to_save_playlist">Не удалось сохранить плейлист (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">Сохранены %1$d плейлиста в %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">Сохранены %1$d плейлиста в %2$s, не удалось сохранить %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> не указано в медиа-хранилище.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Некоторые файлы не указаны в медиа-хранилище.</string>
|
||||
<string name="nothing_to_scan">Нечего сканировать.</string>
|
||||
<string name="scanned_files">Просканировано %1$d из %2$d файлов.</string>
|
||||
<string name="could_not_scan_files">Не удалось просканировать %d файлов.</string>
|
||||
<string name="listing_files">Список файлов</string>
|
||||
<string name="new_start_directory">%s новая начальная директория.</string>
|
||||
<string name="app_widget_big_name">Phonograph — Большой</string>
|
||||
<string name="app_widget_classic_name">Phonograph — Классический</string>
|
||||
<string name="app_widget_small_name">Phonograph — Маленький</string>
|
||||
|
|
@ -255,7 +244,6 @@
|
|||
<string name="only_the_first_5_colors_available">Только первые 5 цветов доступны в бесплатной версии.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Чёрная тема это функция Phonograph Pro.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Таймер сна это функция Phonograph Pro.</string>
|
||||
<string name="folder_view_is_a_pro_feature">Просмотр по папкам это функция Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">Восстановление покупки...</string>
|
||||
<string name="could_not_restore_purchase">Невозможно восстановить покупку.</string>
|
||||
<string name="purchase">Покупка</string>
|
||||
|
|
@ -275,8 +263,6 @@
|
|||
<string name="library_categories">Категории библиотеки</string>
|
||||
<string name="pref_summary_library_categories">Настройте видимость и порядок категорий библиотеки.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">Вы должны выбрать хотя бы одну категорию.</string>
|
||||
<string name="action_scan_directory">Сканировать</string>
|
||||
<string name="scan_media">Сканировать медиа</string>
|
||||
<string name="action_sort_order">Сортировка</string>
|
||||
<string name="sort_order_a_z">По возрастанию</string>
|
||||
<string name="sort_order_z_a">По убыванию</string>
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@
|
|||
<string name="action_details">Detaljer</string>
|
||||
<string name="action_rename">Byt namn</string>
|
||||
<string name="action_delete">Radera</string>
|
||||
<string name="action_scan">Skanna</string>
|
||||
<string name="albums">Album</string>
|
||||
<string name="artists">Artister</string>
|
||||
<string name="songs">Låtar</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Detaylar</string>
|
||||
<string name="action_rename">Yeniden adlandır</string>
|
||||
<string name="action_delete">Sil</string>
|
||||
<string name="action_scan">Tara</string>
|
||||
<string name="action_set_as_start_directory">Başlangıç dizini olarak ayarla</string>
|
||||
<string name="albums">Albümler</string>
|
||||
<string name="artists">Sanatçılar</string>
|
||||
<string name="genres">Türler</string>
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
<string name="action_shuffle_playlist">Çalma listesini karıştır</string>
|
||||
<string name="action_clear_playing_queue">Çalma sırasını temizle</string>
|
||||
<string name="action_save_playing_queue">Çalma sırasını kaydet</string>
|
||||
<string name="action_go_to_start_directory">Başlangıç dizinine git</string>
|
||||
<string name="action_show_lyrics">Şarkı sözlerini göster</string>
|
||||
<string name="light_theme_name">Açık</string>
|
||||
<string name="dark_theme_name">Koyu</string>
|
||||
|
|
@ -203,18 +200,10 @@
|
|||
<string name="open_playing_queue_instruction">Şuan çalınıyor ekranı kartını yukarı kaydırmak çalma sırasının tamamını ortaya çıkarır.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Çalma sırasını yeniden düzenlemek için şarkının parça numarasını kaydırın</string>
|
||||
<string name="library">Kitaplık</string>
|
||||
<string name="folders">Klasörler</string>
|
||||
<string name="saved_playlist_to">Çalma listesi %s kaydedildi.</string>
|
||||
<string name="failed_to_save_playlist">(%s) çalma listesine kaydetme başarısız.</string>
|
||||
<string name="saved_x_playlists_to_x">%1$d oynatma listesini %2$s konumuna kaydedildi.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">%1$d oynatma listesini %2$s konumuna kaydedildi, %3$d kaydedilemedi.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> medya deposu listesinde yok.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Bazı dosyalar medya deposunda listelenmiyor.</string>
|
||||
<string name="nothing_to_scan">Taranacak bir şey yok</string>
|
||||
<string name="scanned_files">%1$d - %2$d dosya taranıyor.</string>
|
||||
<string name="could_not_scan_files">%d dosya taranamadı.</string>
|
||||
<string name="listing_files">Dosyaları listele</string>
|
||||
<string name="new_start_directory">%s yeni bir başlangıç dizini.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Büyük</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Klasik</string>
|
||||
<string name="app_widget_small_name">Phonograph - Küçük</string>
|
||||
|
|
@ -251,7 +240,6 @@
|
|||
<string name="only_the_first_5_colors_available">Ücretsiz sürümde sadece ilk 5 renk mevcuttur.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Siyah tema, Phonograph Pro özelliğidir.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Uyku zamanlayıcı bir Phonograph Pro özelliğidir.</string>
|
||||
<string name="folder_view_is_a_pro_feature">Klasör görünümü bir Phonograph Pro özelliğidir.</string>
|
||||
<string name="restoring_purchase">Satın alma geri yükleniyor...</string>
|
||||
<string name="could_not_restore_purchase">Satın alma geri yüklenemedi.</string>
|
||||
<string name="purchase">Satın Al</string>
|
||||
|
|
@ -271,8 +259,6 @@
|
|||
<string name="library_categories">Kitaplık kategorileri</string>
|
||||
<string name="pref_summary_library_categories">Kitaplık kategorilerinin görünürlüğünü ve sırasını yapılandırma.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">En az bir kategori seçmeniz gerekiyor.</string>
|
||||
<string name="action_scan_directory">Tarama dizini</string>
|
||||
<string name="scan_media">Medyayı tara</string>
|
||||
<string name="action_sort_order">Sıralama düzeni</string>
|
||||
<string name="sort_order_a_z">Artan</string>
|
||||
<string name="sort_order_z_a">Azalan</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Подробиці</string>
|
||||
<string name="action_rename">Перейменувати</string>
|
||||
<string name="action_delete">Видалити</string>
|
||||
<string name="action_scan">Сканувати</string>
|
||||
<string name="action_set_as_start_directory">Встановити як початкову теку</string>
|
||||
<string name="albums">Альбоми</string>
|
||||
<string name="artists">Виконавці</string>
|
||||
<string name="genres">Жанри</string>
|
||||
|
|
@ -87,7 +85,6 @@
|
|||
<string name="action_shuffle_playlist">Перемішати список відтворення</string>
|
||||
<string name="action_clear_playing_queue">Очистити чергу відтворення</string>
|
||||
<string name="action_save_playing_queue">Зберегти чергу відтворення</string>
|
||||
<string name="action_go_to_start_directory">Перейти до початкової теки</string>
|
||||
<string name="action_show_lyrics">Показати текст</string>
|
||||
<string name="light_theme_name">Світла</string>
|
||||
<string name="dark_theme_name">Темна</string>
|
||||
|
|
@ -202,15 +199,8 @@
|
|||
<string name="open_playing_queue_instruction">Свайпніть картку на екрані «Зараз грає» щоб відкрити всю чергу відтворення.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Змініть чергу відтворення, перетягнувши пісню за її номер.</string>
|
||||
<string name="library">Бібліотека</string>
|
||||
<string name="folders">Папки</string>
|
||||
<string name="saved_playlist_to">Збережено список відтворення в %s.</string>
|
||||
<string name="failed_to_save_playlist">Не вдалося зберегти список відтворення (%s).</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> не вказано в медіа сховищі.]]></string>
|
||||
<string name="nothing_to_scan">Нічого сканувати.</string>
|
||||
<string name="scanned_files">Проскановано %1$d з %2$d файлів.</string>
|
||||
<string name="could_not_scan_files">Не вдалося просканувати %d файлів.</string>
|
||||
<string name="listing_files">Лістинг файлів</string>
|
||||
<string name="new_start_directory">%s є новий каталог запуску.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Великий</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Класичний</string>
|
||||
<string name="app_widget_small_name">Phonograph - Малий</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">Chi tiết</string>
|
||||
<string name="action_rename">Đổi tên</string>
|
||||
<string name="action_delete">Xóa</string>
|
||||
<string name="action_scan">Quét</string>
|
||||
<string name="action_set_as_start_directory">Đặt làm thư mục bắt đầu</string>
|
||||
<string name="albums">Album</string>
|
||||
<string name="artists">Nghệ sĩ</string>
|
||||
<string name="songs">Bài hát</string>
|
||||
|
|
@ -85,7 +83,6 @@
|
|||
<string name="action_shuffle_playlist">Trộn danh sách nhạc</string>
|
||||
<string name="action_clear_playing_queue">Dọn hàng đợi phát</string>
|
||||
<string name="action_save_playing_queue">Lưu hàng đợi phát</string>
|
||||
<string name="action_go_to_start_directory">Tới thư mục đầu</string>
|
||||
<string name="action_show_lyrics">Hiện lời bài hát</string>
|
||||
<string name="light_theme_name">Sáng</string>
|
||||
<string name="dark_theme_name">Tối</string>
|
||||
|
|
@ -195,15 +192,8 @@
|
|||
<string name="open_playing_queue_instruction">Vuốt lên thẻ trong trình đang phát để đến với hàng đợi phát đầy đủ.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Sắp xếp lại hàng đợi phát bằng cách kéo một bài hát từ số thứ tự của nó.</string>
|
||||
<string name="library">Thư viện</string>
|
||||
<string name="folders">Thư mục</string>
|
||||
<string name="saved_playlist_to">Đã lưu danh sách nhạc đến %s.</string>
|
||||
<string name="failed_to_save_playlist">Không thể lưu danh sách nhạc (%s).</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> không được liệt kê trong cửa hàng đa phương tiện.]]></string>
|
||||
<string name="nothing_to_scan">Không có gì để quét.</string>
|
||||
<string name="scanned_files">Đã quét %1$d của %2$d tập tin.</string>
|
||||
<string name="could_not_scan_files">Không thể quét %d tập tin.</string>
|
||||
<string name="listing_files">Liệt kê các tập tin</string>
|
||||
<string name="new_start_directory">%s là thư mục khởi đầu.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Lớn</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Cổ điển</string>
|
||||
<string name="app_widget_small_name">Phonograph - Nhỏ</string>
|
||||
|
|
@ -240,7 +230,6 @@
|
|||
<string name="only_the_first_5_colors_available">Chỉ 5 màu đầu tiên có trong phiên bản miễn phí.</string>
|
||||
<string name="black_theme_is_a_pro_feature">Chủ đề màu đen là tính năng của Phonograph Pro.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Hẹn giờ ngủ là một tính năng của Phonograph Pro</string>
|
||||
<string name="folder_view_is_a_pro_feature">Xem thư mục là một tính năng của Phonograph Pro.</string>
|
||||
<string name="restoring_purchase">Đang khôi phục mua hàng...</string>
|
||||
<string name="could_not_restore_purchase">Không thể khôi phục mua hàng.</string>
|
||||
<string name="purchase">Mua hàng</string>
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
<string name="action_details">详情</string>
|
||||
<string name="action_rename">重命名</string>
|
||||
<string name="action_delete">删除</string>
|
||||
<string name="action_scan">扫描</string>
|
||||
<string name="action_set_as_start_directory">设为起始目录</string>
|
||||
<string name="albums">专辑</string>
|
||||
<string name="artists">艺术家</string>
|
||||
<string name="genres">流派</string>
|
||||
|
|
@ -89,7 +87,6 @@
|
|||
<string name="action_shuffle_playlist">随机播放此播放列表</string>
|
||||
<string name="action_clear_playing_queue">清空播放队列</string>
|
||||
<string name="action_save_playing_queue">保存播放队列</string>
|
||||
<string name="action_go_to_start_directory">跳转至起始目录</string>
|
||||
<string name="action_show_lyrics">显示歌词</string>
|
||||
<string name="light_theme_name">浅色</string>
|
||||
<string name="dark_theme_name">暗色</string>
|
||||
|
|
@ -205,18 +202,10 @@
|
|||
<string name="open_playing_queue_instruction">上滑正在播放界面内的卡片即可展开播放队列。</string>
|
||||
<string name="rearrange_playing_queue_instruction">通过拖动歌曲名前面的序列号来调整播放队列的顺序。</string>
|
||||
<string name="library">媒体库</string>
|
||||
<string name="folders">文件夹</string>
|
||||
<string name="saved_playlist_to">已保存播放列表到 %s。</string>
|
||||
<string name="failed_to_save_playlist">保存播放列表(%s)失败。</string>
|
||||
<string name="saved_x_playlists_to_x">已保存 %1$d 播放列表到 %2$s。</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">已保存 %1$d 播放列表到 %2$s,保存 %3$d 失败。</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> 没有列在媒体储存中。]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">部分文件未在媒体储存中列出</string>
|
||||
<string name="nothing_to_scan">没有可扫描的对象。</string>
|
||||
<string name="scanned_files">已扫描 %1$d/%2$d 个文件。</string>
|
||||
<string name="could_not_scan_files">%d 个文件无法扫描。</string>
|
||||
<string name="listing_files">正在列举文件</string>
|
||||
<string name="new_start_directory">%s 是新的初始目录。</string>
|
||||
<string name="app_widget_big_name">Phonograph - 大尺寸</string>
|
||||
<string name="app_widget_classic_name">Phonograph - 经典</string>
|
||||
<string name="app_widget_small_name">Phonograph - 小尺寸</string>
|
||||
|
|
@ -253,7 +242,6 @@
|
|||
<string name="only_the_first_5_colors_available">免费版仅能使用前 5 个主题色。</string>
|
||||
<string name="black_theme_is_a_pro_feature">黑色主题仅适用于 Phonograph Pro。</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">睡眠计时器仅适用于 Phonograph Pro。</string>
|
||||
<string name="folder_view_is_a_pro_feature">文件夹视图仅适用于 Phonograph Pro。</string>
|
||||
<string name="restoring_purchase">正在恢复购买状态...</string>
|
||||
<string name="could_not_restore_purchase">无法恢复购买状态</string>
|
||||
<string name="purchase">购买</string>
|
||||
|
|
@ -273,8 +261,6 @@
|
|||
<string name="library_categories">媒体库类别</string>
|
||||
<string name="pref_summary_library_categories">配置媒体库类别可见性和顺序。</string>
|
||||
<string name="you_have_to_select_at_least_one_category">您必需选择至少一个类别。</string>
|
||||
<string name="action_scan_directory">扫描音乐</string>
|
||||
<string name="scan_media">扫描音乐</string>
|
||||
<string name="action_sort_order">排序方式</string>
|
||||
<string name="sort_order_a_z">按首字符(正序)</string>
|
||||
<string name="sort_order_z_a">按首字符(倒序)</string>
|
||||
|
|
|
|||
|
|
@ -26,8 +26,6 @@
|
|||
<string name="action_rename">"重新命名
|
||||
"</string>
|
||||
<string name="action_delete">刪除</string>
|
||||
<string name="action_scan">掃描</string>
|
||||
<string name="action_set_as_start_directory">設為起始目錄</string>
|
||||
<string name="albums">專輯</string>
|
||||
<string name="artists">演出者</string>
|
||||
<string name="genres">類型</string>
|
||||
|
|
@ -90,7 +88,6 @@
|
|||
<string name="action_shuffle_playlist">隨機播放清單</string>
|
||||
<string name="action_clear_playing_queue">清空播放佇列</string>
|
||||
<string name="action_save_playing_queue">保存播放佇列</string>
|
||||
<string name="action_go_to_start_directory">前往起始目錄</string>
|
||||
<string name="action_show_lyrics">顯示歌詞</string>
|
||||
<string name="light_theme_name">明亮</string>
|
||||
<string name="dark_theme_name">暗沉</string>
|
||||
|
|
@ -208,18 +205,10 @@
|
|||
<string name="open_playing_queue_instruction">在播放面板上滑來顯示播放佇列</string>
|
||||
<string name="rearrange_playing_queue_instruction">您可以更改歌曲播放的順序,上下拖曳播放佇列中的歌曲編號即可。</string>
|
||||
<string name="library">音樂庫</string>
|
||||
<string name="folders">文件夾</string>
|
||||
<string name="saved_playlist_to">已儲存播放清單至%s</string>
|
||||
<string name="failed_to_save_playlist">無法儲存播放清單 \"%s\"</string>
|
||||
<string name="saved_x_playlists_to_x">儲存播放清單 %1$d 至 %2$s</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">儲存播放清單 %1$d 至 %2$s , %3$d 儲存失敗</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b>未被列在音樂庫裡。]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">部分檔案未被列在音樂庫中。</string>
|
||||
<string name="nothing_to_scan">沒有東西可掃描。</string>
|
||||
<string name="scanned_files">已掃描%2$d個檔案夾中的%1$d個。</string>
|
||||
<string name="could_not_scan_files">不能掃描%d。</string>
|
||||
<string name="listing_files">列出文件</string>
|
||||
<string name="new_start_directory">%s是新的起始目錄</string>
|
||||
<string name="app_widget_big_name">Phonograph - 大型</string>
|
||||
<string name="app_widget_classic_name">Phonograph - 經典</string>
|
||||
<string name="app_widget_small_name">Phonograph - 小型</string>
|
||||
|
|
@ -256,7 +245,6 @@
|
|||
<string name="only_the_first_5_colors_available">免費版僅能使用前 5 個顏色</string>
|
||||
<string name="black_theme_is_a_pro_feature">黑色主題僅供 Phonograph Pro 使用</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">睡眠定時器僅供 Phonograph Pro 使用</string>
|
||||
<string name="folder_view_is_a_pro_feature">文件夾檢視僅供 Phonograph Pro 使用</string>
|
||||
<string name="restoring_purchase">恢復購買中...</string>
|
||||
<string name="could_not_restore_purchase">恢復購買失敗</string>
|
||||
<string name="purchase">購買</string>
|
||||
|
|
@ -276,8 +264,6 @@
|
|||
<string name="library_categories">音樂庫類別</string>
|
||||
<string name="pref_summary_library_categories">調整音樂庫類別的顯示與排序</string>
|
||||
<string name="you_have_to_select_at_least_one_category">你至少要選擇 1 個類別</string>
|
||||
<string name="action_scan_directory">掃描檔案</string>
|
||||
<string name="scan_media">掃描音樂</string>
|
||||
<string name="action_sort_order">排列方式</string>
|
||||
<string name="sort_order_a_z">升序排列</string>
|
||||
<string name="sort_order_z_a">降序排列</string>
|
||||
|
|
|
|||
|
|
@ -26,8 +26,6 @@
|
|||
<string name="action_details">Details</string>
|
||||
<string name="action_rename">Rename</string>
|
||||
<string name="action_delete">Delete</string>
|
||||
<string name="action_scan">Scan</string>
|
||||
<string name="action_set_as_start_directory">Set as start directory</string>
|
||||
<string name="albums">Albums</string>
|
||||
<string name="artists">Artists</string>
|
||||
<string name="genres">Genres</string>
|
||||
|
|
@ -90,7 +88,6 @@
|
|||
<string name="action_shuffle_playlist">Shuffle playlist</string>
|
||||
<string name="action_clear_playing_queue">Clear playing queue</string>
|
||||
<string name="action_save_playing_queue">Save playing queue</string>
|
||||
<string name="action_go_to_start_directory">Go to start directory</string>
|
||||
<string name="action_show_lyrics">Show lyrics</string>
|
||||
<string name="light_theme_name">Light</string>
|
||||
<string name="dark_theme_name">Dark</string>
|
||||
|
|
@ -217,18 +214,10 @@
|
|||
<string name="open_playing_queue_instruction">Swipe the card in the now playing screen up to reveal the full playing queue.</string>
|
||||
<string name="rearrange_playing_queue_instruction">Rearrange the playing queue by dragging a song from its track number.</string>
|
||||
<string name="library">Library</string>
|
||||
<string name="folders">Folders</string>
|
||||
<string name="saved_playlist_to">Saved playlist to %s.</string>
|
||||
<string name="failed_to_save_playlist">Failed to save playlist (%s).</string>
|
||||
<string name="saved_x_playlists_to_x">Saved %1$d playlists to %2$s.</string>
|
||||
<string name="saved_x_playlists_to_x_failed_to_save_x">Saved %1$d playlists to %2$s, failed to save %3$d.</string>
|
||||
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> is not listed in the media store.]]></string>
|
||||
<string name="some_files_are_not_listed_in_the_media_store">Some files are not listed in the media store.</string>
|
||||
<string name="nothing_to_scan">Nothing to scan.</string>
|
||||
<string name="scanned_files">Scanned %1$d of %2$d files.</string>
|
||||
<string name="could_not_scan_files">Could not scan %d files.</string>
|
||||
<string name="listing_files">Listing files</string>
|
||||
<string name="new_start_directory">%s is the new start directory.</string>
|
||||
<string name="app_widget_big_name">Phonograph - Big</string>
|
||||
<string name="app_widget_classic_name">Phonograph - Classic</string>
|
||||
<string name="app_widget_small_name">Phonograph - Small</string>
|
||||
|
|
@ -266,7 +255,6 @@
|
|||
<string name="only_the_first_5_colors_available">Only the first 5 colors are available in the free version.</string>
|
||||
<string name="black_theme_is_a_pro_feature">The black theme is Phonograph Pro feature.</string>
|
||||
<string name="sleep_timer_is_a_pro_feature">Sleep timer is a Phonograph Pro feature</string>
|
||||
<string name="folder_view_is_a_pro_feature">Folder view is a Phonograph Pro feature.</string>
|
||||
<string name="restoring_purchase">Restoring purchase…</string>
|
||||
<string name="could_not_restore_purchase">Could not restore purchase.</string>
|
||||
<string name="purchase">Purchase</string>
|
||||
|
|
@ -286,8 +274,6 @@
|
|||
<string name="library_categories">Library categories</string>
|
||||
<string name="pref_summary_library_categories">Configure visibility and order of library categories.</string>
|
||||
<string name="you_have_to_select_at_least_one_category">You have to select at least one category.</string>
|
||||
<string name="action_scan_directory">Scan directory</string>
|
||||
<string name="scan_media">Scan media</string>
|
||||
<string name="action_sort_order">Sort order</string>
|
||||
<string name="sort_order_a_z">Ascending</string>
|
||||
<string name="sort_order_z_a">Descending</string>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue