Added preference settings to customize fastforward and rewind delta. Closes #2129. Minor: Fixes title case in preference setting titles Minor: Fixes typo in naming of UserPreferences.getFastFowardSecs to UserPreferences.getFastForwardSecs.

This commit is contained in:
eraymond 2016-09-28 16:00:44 -07:00
parent 4a1e728ac5
commit 970d41bb78
34 changed files with 195 additions and 78 deletions

View File

@ -1,6 +1,7 @@
package de.danoeh.antennapod.activity;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.TypedArray;
@ -9,6 +10,7 @@ import android.graphics.PixelFormat;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import android.view.Menu;
@ -42,6 +44,7 @@ import de.danoeh.antennapod.core.util.Converter;
import de.danoeh.antennapod.core.util.Flavors;
import de.danoeh.antennapod.core.util.ShareUtils;
import de.danoeh.antennapod.core.util.StorageUtils;
import de.danoeh.antennapod.core.util.Supplier;
import de.danoeh.antennapod.core.util.playback.MediaPlayerError;
import de.danoeh.antennapod.core.util.playback.Playable;
import de.danoeh.antennapod.core.util.playback.PlaybackController;
@ -49,6 +52,8 @@ import de.danoeh.antennapod.dialog.SleepTimerDialog;
import de.danoeh.antennapod.dialog.VariableSpeedDialog;
import rx.Observable;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.functions.Func1;
import rx.schedulers.Schedulers;
@ -178,6 +183,13 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
};
}
static protected TextView getTxtvFFFromActivity(MediaplayerActivity activity) {
return activity.txtvFF;
}
static protected TextView getTxtvRevFromActivity(MediaplayerActivity activity) {
return activity.txtvRev;
}
protected void onSetSpeedAbilityChanged() {
Log.d(TAG, "onSetSpeedAbilityChanged()");
updatePlaybackSpeedButton();
@ -650,6 +662,85 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
// Only meaningful on AudioplayerActivity, where it is overridden.
}
/**
* Abstract directions to skip forward or back (rewind) and encapsulates behavior to get or set preference (including update of UI on the skip buttons).
*/
static public enum SkipDirection {
SKIP_FORWARD(UserPreferences::getFastForwardSecs, MediaplayerActivity::getTxtvFFFromActivity, UserPreferences::setFastForwardSecs, R.string.pref_fast_forward),
SKIP_REWIND(UserPreferences::getRewindSecs, MediaplayerActivity::getTxtvRevFromActivity, UserPreferences::setRewindSecs, R.string.pref_rewind);
private final Supplier<Integer> getPrefSecsFn;
private final Func1<MediaplayerActivity, TextView> getTextViewFn;
private final Action1<Integer> setPrefSecsFn;
private final int titleResourceID;
/**
* Constructor for skip direction enum. Stores references to utility functions and resource
* id's that vary dependending on the direction.
*
* @param getPrefSecsFn Handle to function that retrieves current seconds of the skip delta
* @param getTextViewFn Handle to function that gets the TextView which displays the current skip delta value
* @param setPrefSecsFn Handle to function that sets the preference (setting) for the skip delta value (and optionally updates the button label with the current values)
* @param titleResourceID ID of the resource string with the title for a view
*/
SkipDirection(Supplier<Integer> getPrefSecsFn, Func1<MediaplayerActivity, TextView> getTextViewFn, Action1<Integer> setPrefSecsFn, int titleResourceID) {
this.getPrefSecsFn = getPrefSecsFn;
this.getTextViewFn = getTextViewFn;
this.setPrefSecsFn = setPrefSecsFn;
this.titleResourceID = titleResourceID;
}
public int getPrefSkipSeconds() {
return(getPrefSecsFn.get());
}
/**
* Updates preferences for a forward or backward skip depending on the direction of the instance, optionally updating the UI.
*
* @param seconds Number of seconds to set the preference associated with the direction of the instance.
* @param activity MediaplyerActivity that contains textview to update the display of the skip delta setting (or null if nothing to update)
*/
public void setPrefSkipSeconds(int seconds, @Nullable Activity activity) {
setPrefSecsFn.call(seconds);
/// Optionlally, update display of skip value on ff/rewind buttons in mediaplayer
if (activity != null && activity instanceof MediaplayerActivity) {
TextView tv = getTextViewFn.call((MediaplayerActivity)activity);
if (tv != null) tv.setText(String.valueOf(seconds));
}
}
public int getTitleResourceID() {
return titleResourceID;
}
}
static public void showSkipPreference(Activity activity, SkipDirection direction) {
int checked = 0;
int skipSecs = direction.getPrefSkipSeconds();
final int[] values = activity.getResources().getIntArray(R.array.seek_delta_values);
final String[] choices = new String[values.length];
for (int i = 0; i < values.length; i++) {
if (skipSecs == values[i]) {
checked = i;
}
choices[i] = String.valueOf(values[i]) + " " + activity.getString(R.string.time_seconds);
}
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle(direction.getTitleResourceID());
builder.setSingleChoiceItems(choices, checked, null);
builder.setNegativeButton(R.string.cancel_label, null);
builder.setPositiveButton(R.string.confirm_label, (dialog, which) -> {
int choice = ((AlertDialog)dialog).getListView().getCheckedItemPosition();
if (choice < 0 || choice >= values.length) {
System.err.printf("Choice in showSkipPreference is out of bounds %d", choice);
} else {
direction.setPrefSkipSeconds(values[choice], activity);
}
});
builder.create().show();
}
protected void setupGUI() {
setContentView(getContentViewResourceId());
@ -692,7 +783,7 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
butFF = (ImageButton) findViewById(R.id.butFF);
txtvFF = (TextView) findViewById(R.id.txtvFF);
if (txtvFF != null) {
txtvFF.setText(String.valueOf(UserPreferences.getFastFowardSecs()));
txtvFF.setText(String.valueOf(UserPreferences.getFastForwardSecs()));
}
butSkip = (ImageButton) findViewById(R.id.butSkip);
@ -704,37 +795,9 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
if (butRev != null) {
butRev.setOnClickListener(v -> onRewind());
butRev.setOnLongClickListener(new View.OnLongClickListener() {
int choice;
@Override
public boolean onLongClick(View v) {
int checked = 0;
int rewindSecs = UserPreferences.getRewindSecs();
final int[] values = getResources().getIntArray(R.array.seek_delta_values);
final String[] choices = new String[values.length];
for (int i = 0; i < values.length; i++) {
if (rewindSecs == values[i]) {
checked = i;
}
choices[i] = String.valueOf(values[i]) + " " + getString(R.string.time_seconds);
}
choice = values[checked];
AlertDialog.Builder builder = new AlertDialog.Builder(MediaplayerActivity.this);
builder.setTitle(R.string.pref_rewind);
builder.setSingleChoiceItems(choices, checked,
(dialog, which) -> choice = values[which]);
builder.setNegativeButton(R.string.cancel_label, null);
builder.setPositiveButton(R.string.confirm_label, (dialog, which) -> {
UserPreferences.setPrefRewindSecs(choice);
if(txtvRev != null){
txtvRev.setText(String.valueOf(choice));
}
});
builder.create().show();
return true;
}
butRev.setOnLongClickListener(v -> {
showSkipPreference(MediaplayerActivity.this, SkipDirection.SKIP_REWIND);
return true;
});
}
@ -742,37 +805,9 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
if (butFF != null) {
butFF.setOnClickListener(v -> onFastForward());
butFF.setOnLongClickListener(new View.OnLongClickListener() {
int choice;
@Override
public boolean onLongClick(View v) {
int checked = 0;
int rewindSecs = UserPreferences.getFastFowardSecs();
final int[] values = getResources().getIntArray(R.array.seek_delta_values);
final String[] choices = new String[values.length];
for (int i = 0; i < values.length; i++) {
if (rewindSecs == values[i]) {
checked = i;
}
choices[i] = String.valueOf(values[i]) + " " + getString(R.string.time_seconds);
}
choice = values[checked];
AlertDialog.Builder builder = new AlertDialog.Builder(MediaplayerActivity.this);
builder.setTitle(R.string.pref_fast_forward);
builder.setSingleChoiceItems(choices, checked,
(dialog, which) -> choice = values[which]);
builder.setNegativeButton(R.string.cancel_label, null);
builder.setPositiveButton(R.string.confirm_label, (dialog, which) -> {
UserPreferences.setPrefFastForwardSecs(choice);
if(txtvFF != null) {
txtvFF.setText(String.valueOf(choice));
}
});
builder.create().show();
return true;
}
butFF.setOnLongClickListener(v -> {
showSkipPreference(MediaplayerActivity.this, SkipDirection.SKIP_FORWARD);
return false;
});
}
@ -801,7 +836,7 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
return;
}
int curr = controller.getPosition();
controller.seekTo(curr + UserPreferences.getFastFowardSecs() * 1000);
controller.seekTo(curr + UserPreferences.getFastForwardSecs() * 1000);
}
protected abstract int getContentViewResourceId();

View File

@ -51,6 +51,7 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.AboutActivity;
import de.danoeh.antennapod.activity.DirectoryChooserActivity;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.activity.MediaplayerActivity;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.activity.PreferenceActivityGingerbread;
import de.danoeh.antennapod.activity.StatisticsActivity;
@ -85,6 +86,8 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc
public static final String PREF_CHOOSE_DATA_DIR = "prefChooseDataDir";
public static final String AUTO_DL_PREF_SCREEN = "prefAutoDownloadSettings";
public static final String PREF_PLAYBACK_SPEED_LAUNCHER = "prefPlaybackSpeedLauncher";
public static final String PREF_PLAYBACK_REWIND_DELTA_LAUNCHER = "prefPlaybackRewindDeltaLauncher";
public static final String PREF_PLAYBACK_FAST_FORWARD_DELTA_LAUNCHER = "prefPlaybackFastForwardDeltaLauncher";
public static final String PREF_GPODNET_LOGIN = "pref_gpodnet_authenticate";
public static final String PREF_GPODNET_SETLOGIN_INFORMATION = "pref_gpodnet_setlogin_information";
public static final String PREF_GPODNET_SYNC = "pref_gpodnet_sync";
@ -326,6 +329,16 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc
VariableSpeedDialog.showDialog(activity);
return true;
});
ui.findPreference(PreferenceController.PREF_PLAYBACK_REWIND_DELTA_LAUNCHER)
.setOnPreferenceClickListener(preference -> {
MediaplayerActivity.showSkipPreference(activity, MediaplayerActivity.SkipDirection.SKIP_REWIND);
return true;
});
ui.findPreference(PreferenceController.PREF_PLAYBACK_FAST_FORWARD_DELTA_LAUNCHER)
.setOnPreferenceClickListener(preference -> {
MediaplayerActivity.showSkipPreference(activity, MediaplayerActivity.SkipDirection.SKIP_FORWARD);
return true;
});
ui.findPreference(PreferenceController.PREF_GPODNET_SETLOGIN_INFORMATION)
.setOnPreferenceClickListener(preference -> {
AuthenticationDialog dialog = new AuthenticationDialog(activity,
@ -641,7 +654,7 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc
val = String.format(context.getString(R.string.pref_autoUpdateIntervallOrTime_at),
timeOfDayStr);
} else {
val = context.getString(R.string.pref_smart_mark_as_played_disabled);
val = context.getString(R.string.pref_smart_mark_as_played_disabled); // TODO: Is this a bug? Otherwise document why is this related to smart mark???
}
}
String summary = context.getString(R.string.pref_autoUpdateIntervallOrTime_sum) + "\n"

View File

@ -109,6 +109,14 @@
android:key="prefHardwareForwardButtonSkips"
android:summary="@string/pref_hardwareForwardButtonSkips_sum"
android:title="@string/pref_hardwareForwardButtonSkips_title"/>
<Preference
android:key="prefPlaybackFastForwardDeltaLauncher"
android:summary="@string/pref_fast_forward_sum"
android:title="@string/pref_fast_forward" />
<Preference
android:key="prefPlaybackRewindDeltaLauncher"
android:summary="@string/pref_rewind_sum"
android:title="@string/pref_rewind" />
<de.danoeh.antennapod.preferences.SwitchCompatPreference
android:defaultValue="true"
android:enabled="true"
@ -139,7 +147,6 @@
android:key="prefPlaybackSpeedLauncher"
android:summary="@string/pref_playback_speed_sum"
android:title="@string/pref_playback_speed_title" />
<de.danoeh.antennapod.preferences.SwitchCompatPreference
android:defaultValue="false"
android:enabled="true"

View File

@ -400,7 +400,7 @@ public class UserPreferences {
return cacheSizeMB;
}
public static int getFastFowardSecs() {
public static int getFastForwardSecs() {
return prefs.getInt(PREF_FAST_FORWARD_SECS, 30);
}
@ -465,13 +465,13 @@ public class UserPreferences {
return prefs.getBoolean(PREF_QUEUE_LOCKED, false);
}
public static void setPrefFastForwardSecs(int secs) {
public static void setFastForwardSecs(int secs) {
prefs.edit()
.putInt(PREF_FAST_FORWARD_SECS, secs)
.apply();
}
public static void setPrefRewindSecs(int secs) {
public static void setRewindSecs(int secs) {
prefs.edit()
.putInt(PREF_REWIND_SECS, secs)
.apply();

View File

@ -471,11 +471,11 @@ public class PlaybackService extends MediaBrowserServiceCompat {
} else {
// assume skip command comes from a (bluetooth) media button
// user actually wants to fast-forward
seekDelta(UserPreferences.getFastFowardSecs() * 1000);
seekDelta(UserPreferences.getFastForwardSecs() * 1000);
}
break;
case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
mediaPlayer.seekDelta(UserPreferences.getFastFowardSecs() * 1000);
mediaPlayer.seekDelta(UserPreferences.getFastForwardSecs() * 1000);
break;
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
case KeyEvent.KEYCODE_MEDIA_REWIND:
@ -1610,7 +1610,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
@Override
public void onFastForward() {
Log.d(TAG, "onFastForward()");
seekDelta(UserPreferences.getFastFowardSecs() * 1000);
seekDelta(UserPreferences.getFastForwardSecs() * 1000);
}
@Override
@ -1619,7 +1619,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
if(UserPreferences.shouldHardwareButtonSkip()) {
mediaPlayer.skip();
} else {
seekDelta(UserPreferences.getFastFowardSecs() * 1000);
seekDelta(UserPreferences.getFastForwardSecs() * 1000);
}
}

View File

@ -151,6 +151,8 @@
<string name="pref_update_interval_hours_plural">saat</string>
<string name="pref_update_interval_hours_singular">saat</string>
<string name="pref_update_interval_hours_manual">Əl ilə</string>
<string name="pref_fast_forward_sum">Sürətli irəli düyməsini tıklandığında irəli tullanmaq üçün saniyə sayı özelleştirin</string>
<string name="pref_rewind_sum">Geri düyməsinə tıklandığında geri tullanmaq üçün saniyə sayı özelleştirin</string>
<!--Auto-Flattr dialog-->
<!--Search-->
<string name="search_hint">Kanalları və ya epizodları axtar</string>

View File

@ -351,6 +351,8 @@
<string name="pref_sonic_title">Reproductor multimèdia Sonic</string>
<string name="pref_sonic_message">Fer servir el reproductor Sonic Media integrat en comptes del reproductor natiu d\'Android i Prestissimo</string>
<string name="pref_current_value">Valor actual: %1$s</string>
<string name="pref_rewind_sum">Personalitzar el nombre de segons per saltar cap enrere quan es fa clic al botó de rebobinat</string>
<string name="pref_fast_forward_sum">Personalitzar el nombre de segons per saltar cap endavant quan es fa clic al botó d\'avanç ràpid</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Activa la compartició automàtica per Flattr</string>
<string name="auto_flattr_after_percent">Comparteix per Flattr l\'episodi en haver-ne reproduït el %d per cent</string>

View File

@ -383,6 +383,8 @@
<string name="pref_known_issues">Známé chyby</string>
<string name="pref_no_browser_found">Webový prohlížeč nenalezen.</string>
<string name="pref_cast_title">Chromecast podpora</string>
<string name="pref_rewind_sum">Přizpůsobte počet sekund ke skoku zpět při klepnutí na tlačítko převíjení</string>
<string name="pref_fast_forward_sum">Přizpůsobit počet sekund skok dopředu při klepnutí na tlačítko rychle vpřed</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Povolit automatické flattrování</string>
<string name="auto_flattr_after_percent">Flattrovat díl jakmile bude odehráno %d procent</string>

View File

@ -301,6 +301,8 @@
<string name="set_to_default_folder">Vælg standard mappe</string>
<string name="pref_pausePlaybackForFocusLoss_sum">Sæt afspilning på pause i stedet for at sænke lydniveauet når en anden app vil afspille lyde</string>
<string name="pref_pausePlaybackForFocusLoss_title">Pause for afbrydelser</string>
<string name="pref_fast_forward_sum">Tilpas antallet af sekunder til at springe frem, når den hurtige knap frem der klikkes</string>
<string name="pref_rewind_sum">Tilpas antallet af sekunder for at hoppe baglæns, når knappen tilbagespoling klikkes</string>
<!--Online feed view-->
<string name="subscribe_label">Abonner</string>
<string name="subscribed_label">Abonneret</string>

View File

@ -384,6 +384,9 @@
<string name="pref_no_browser_found">Kein Browser gefunden.</string>
<string name="pref_cast_title">Chromecast-Unterstützung</string>
<string name="pref_cast_message_play_flavor">Aktiviere die Unterstützung von Cast-Geräten (Chromecast, Lautsprecher oder Android TV) zum entfernten Abspielen</string>
<string name="pref_rewind_sum">Passen Sie die Anzahl der Sekunden rückwärts zu springen, wenn die Rücklauf -Taste angeklickt wird</string>
<string name="pref_fast_forward_sum">Passen Sie die Anzahl der Sekunden nach vorne zu springen, wenn die Schnellvorlauf -Taste angeklickt wird</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Automatisches Flattrn aktivieren</string>
<string name="auto_flattr_after_percent">Flattr eine Episode, sobald %d Prozent gespielt worden sind</string>

View File

@ -310,6 +310,8 @@
<string name="pref_resumeAfterCall_sum">Συνέχιση της αναπαραγωγής, μετά το πέρας τηλεφωνικής κλήσης</string>
<string name="pref_resumeAfterCall_title">Συνέχιση της αναπαραγωγής, μετά από Κλήση</string>
<string name="pref_restart_required">Το AntennaPod χρειάζεται επανεκκίνηση για την εφαρμογή των αλλαγών.</string>
<string name="pref_rewind_sum">Προσαρμόστε τον αριθμό των δευτερολέπτων για να μεταβείτε προς τα πίσω, όταν το πίσω κουμπί έχει πατηθεί</string>
<string name="pref_fast_forward_sum">Προσαρμόστε τον αριθμό των δευτερολέπτων για να μεταβείτε προς τα εμπρός όταν το γρήγορο κουμπί προς τα εμπρός κλικ</string>
<!--Online feed view-->
<string name="subscribe_label">Εγγραφή</string>
<string name="subscribed_label">Εγγεγραμμένα</string>

View File

@ -179,6 +179,8 @@
<string name="pref_autodl_wifi_filter_title">Activar el filtro WiFi</string>
<string name="pref_autodl_wifi_filter_sum">Permitir la descarga automática sólo para las redes WiFi marcadas.</string>
<string name="pref_episode_cache_title">Caché de episodios</string>
<string name="pref_rewind_sum">Personalizar el número de segundos para saltar hacia atrás cuando se hace clic en el botón de rebobinado</string>
<string name="pref_fast_forward_sum">Personalizar el número de segundos para saltar hacia adelante cuando se hace clic en el botón de avance rápido</string>
<!--Auto-Flattr dialog-->
<!--Search-->
<string name="search_hint">Buscar canales o episodios</string>

View File

@ -350,6 +350,7 @@
<string name="pref_playback_speed_sum">Personalice las velocidades disponibles para la reproducción de audio a velocidad variable</string>
<string name="pref_fast_forward">Intervalo de avance</string>
<string name="pref_rewind">Intervalo de retroceso</string>
<string name="pref_gpodnet_sethostname_title">Definir nombre de equipo</string>
<string name="pref_gpodnet_sethostname_use_default_host">Usar nombre de equipo por defecto</string>
<string name="pref_expandNotify_title">Expandir Notificación</string>
@ -385,6 +386,9 @@
<string name="pref_cast_title">Soporte para Chromecast</string>
<string name="pref_cast_message_play_flavor">Habilitar soporte para reproducción remota en dispositivos Cast (como Chromecast, altavoces o Android TV)</string>
<string name="pref_cast_message_free_flavor">Chromecast requiere librerías propietarias de terceros que están deshabilitadas en esta versión de AntennaPod</string>
<string name="pref_fast_forward_sum">Personalizar el número de segundos para saltar hacia adelante cuando se hace clic en el botón de avance rápido</string>
<string name="pref_rewind_sum">Personalizar el número de segundos para saltar hacia atrás cuando se hace clic en el botón de rebobinado</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Habilitar Flattr automático</string>
<string name="auto_flattr_after_percent">Hacer Flattr del episodio en cuanto se haya reproducido el %d por ciento</string>

View File

@ -297,6 +297,8 @@
<string name="pref_proxy_title">Vaheserver</string>
<string name="pref_proxy_sum">Määra võrgu vaheserver</string>
<string name="pref_known_issues">Teadaolevad probleemid</string>
<string name="pref_rewind_sum">Kohanda mitu sekundit hüpata tagasi, kui tagasikerimise nupule vajutamist</string>
<string name="pref_fast_forward_sum">Kohanda mitu sekundit hüpata edasi, kui kiiresti edasi Klõpsamise</string>
<!--Auto-Flattr dialog-->
<!--Search-->
<string name="search_hint">Uudisvoogude või saadete otsing</string>
@ -464,6 +466,7 @@
<string name="proxy_test_successful">Kontroll oli edukas</string>
<string name="proxy_test_failed">Kontroll ebaõnnestus</string>
<string name="proxy_port_invalid_error">Port pole korrektne</string>
<!--Casting-->
<!--<string name="cast_failed_to_connect">Could not connect to the device</string>-->
</resources>

View File

@ -385,6 +385,8 @@
<string name="pref_cast_title">Chromecast support</string>
<string name="pref_cast_message_play_flavor">Activer la lecture à distance sur les appareils Cast (comme Chromecast, Audio Speaker ou Android TV)</string>
<string name="pref_cast_message_free_flavor">Chromecast nécessite des bibiliothèques tierces qui sont désactivées dans cette version d\'AntennaPod</string>
<string name="pref_rewind_sum">Personnaliser le nombre de secondes pour sauter vers l\'arrière lorsque le bouton de rembobinage est cliqué</string>
<string name="pref_fast_forward_sum">Personnaliser le nombre de secondes pour sauter vers l\'avant lorsque le bouton d\'avance rapide est cliqué</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Activer le paiement flattr automatique</string>
<string name="auto_flattr_after_percent">Lancer un paiement flattr pour un épisode dès que %d de l\'épisode a été joué</string>

View File

@ -185,6 +185,8 @@
<string name="pref_playback_speed_sum">चर गति ऑडियो प्लेबैक के लिए उपलब्ध गति बनाइए</string>
<string name="pref_gpodnet_sethostname_title">होस्टनाम सेट</string>
<string name="pref_gpodnet_sethostname_use_default_host">डिफ़ॉल्ट होस्ट का प्रयोग करें</string>
<string name="pref_fast_forward_sum">आगे कूद करने के लिए सेकंड की संख्या अनुकूलित जब तेजी से आगे बटन क्लिक किया जाता है</string>
<string name="pref_rewind_sum">पीछे की ओर कूद करने के लिए सेकंड की संख्या अनुकूलित जब उल्टा बटन क्लिक किया जाता है</string>
<!--Auto-Flattr dialog-->
<!--Search-->
<string name="search_hint">फ़ीड या एपिसोड के लिए खोज</string>

View File

@ -324,6 +324,8 @@
<string name="pref_proxy_title">Proxy</string>
<string name="pref_faq">FAQ</string>
<string name="pref_cast_title">Supporto a Chromecast</string>
<string name="pref_rewind_sum">Personalizzare il numero di secondi per saltare all\'indietro quando il pulsante di riavvolgimento viene cliccato</string>
<string name="pref_fast_forward_sum">Personalizzare il numero di secondi per saltare in avanti quando il pulsante di avanzamento rapido viene cliccato</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Abilita l\'esecuzione automatica di Flattr</string>
<string name="auto_flattr_after_percent">Carica l\'episodio su Flattr appena è stato riprodotto al %d percento</string>

View File

@ -192,6 +192,8 @@
<string name="pref_expandNotify_title">Espandi le notifiche</string>
<string name="pref_queueAddToFront_sum">Aggiungi un nuovo episodio in testa alla coda.</string>
<string name="pref_smart_mark_as_played_disabled">Disabilitato</string>
<string name="pref_rewind_sum">Personalizzare il numero di secondi per saltare all\'indietro quando il pulsante di riavvolgimento viene cliccato</string>
<string name="pref_fast_forward_sum">Personalizzare il numero di secondi per saltare in avanti quando il pulsante di avanzamento rapido viene cliccato</string>
<!--Auto-Flattr dialog-->
<!--Search-->
<string name="search_hint">Cerca dei feed o degli episodi</string>

View File

@ -245,6 +245,8 @@
<string name="pref_expand_notify_unsupport_toast">גרסאות אנדרויד לפני 4.1 לא תומכות בהודעות מורחבות.</string>
<string name="pref_queueAddToFront_sum">הוסף פרקים חדשים לראש התור.</string>
<string name="pref_queueAddToFront_title">הוסף לראש התור.</string>
<string name="pref_rewind_sum">התאמה אישית של מספר השניות כדי לקפוץ לאחור כאשר כפתור rewind לוחץ</string>
<string name="pref_fast_forward_sum">התאמה אישית של מספר השניות כדי לקפוץ קדימה בעת הלחיצה על לחצן קדימה מהר לוחצת</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">הפעל תרומות flattr אוטומטיות</string>
<string name="auto_flattr_after_percent">תרום באמצעות flattr כשנוגן %d אחוזים מהפרק</string>

View File

@ -491,6 +491,8 @@
<string name="pref_resumeAfterCall_sum">着信が完了した後に再生を再開します</string>
<string name="pref_resumeAfterCall_title">着信後に再開</string>
<string name="pref_restart_required">この変更を有効にするには AntennaPod を再起動する必要があります。</string>
<string name="pref_rewind_sum">巻き戻しボタンがクリックされたときに後方にジャンプする秒数をカスタマイズします</string>
<string name="pref_fast_forward_sum">早送りボタンがクリックされたときに前方にジャンプする秒数をカスタマイズします</string>
<!--Online feed view-->
<string name="subscribe_label">購読</string>
<string name="subscribed_label">購読しました</string>

View File

@ -378,6 +378,8 @@
<string name="pref_known_issues">알려진 문제점</string>
<string name="pref_no_browser_found">웹브라우저가 없습니다.</string>
<string name="pref_cast_title">크롬캐스트 지원</string>
<string name="pref_rewind_sum">되감기 버튼을 클릭하면 뒤로 이동 (초)을 정의</string>
<string name="pref_fast_forward_sum">빨리 감기 버튼을 클릭 할 때 앞으로 이동 (초)을 정의</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">자동 flattr 사용</string>
<string name="auto_flattr_after_percent">%d 퍼센트를 재생하면 에피소드에 flattr합니다</string>

View File

@ -331,6 +331,8 @@
<string name="send_email">Send e-post</string>
<string name="experimental_pref">Eksperimentell</string>
<string name="pref_sonic_title">Sonic medieavspiller</string>
<string name="pref_rewind_sum">Tilpass antall sekunder for å hoppe bakover når tilbakespolingsknapp klikkes</string>
<string name="pref_fast_forward_sum">Tilpass antall sekunder for å hoppe fremover når spol forover-knapp klikkes</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Aktiver automatisk flattring</string>
<string name="auto_flattr_after_percent">Flattre episode så snart %d prosent er avspilt</string>

View File

@ -380,6 +380,8 @@
<string name="pref_known_issues">Reeds bekende bugs</string>
<string name="pref_no_browser_found">Geen browser gevonden</string>
<string name="pref_cast_title">Chromecast</string>
<string name="pref_rewind_sum">Pas het aantal seconden achteruit springen wanneer het terugspoelen knop wordt geklikt</string>
<string name="pref_fast_forward_sum">Pas het aantal seconden om vooruit te springen wanneer de fast forward knop wordt geklikt</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Automatisch flattr\'en aanzetten</string>
<string name="auto_flattr_after_percent">Flattr een aflevering zodra %d procent is afgespeeld</string>

View File

@ -331,6 +331,8 @@
<string name="send_email">Send e-post</string>
<string name="experimental_pref">Eksperimentell</string>
<string name="pref_sonic_title">Sonic medieavspiller</string>
<string name="pref_rewind_sum">Tilpass antall sekunder for å hoppe bakover når tilbakespolingsknapp klikkes</string>
<string name="pref_fast_forward_sum">Tilpass antall sekunder for å hoppe fremover når spol forover-knapp klikkes</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Aktiver automatisk flattring</string>
<string name="auto_flattr_after_percent">Flattre episode så snart %d prosent er avspilt</string>

View File

@ -313,6 +313,8 @@
<string name="send_email">Wyślij e-mail</string>
<string name="experimental_pref">Eksperymentalne</string>
<string name="pref_sonic_title">Odtwarzacz mediów Sonic</string>
<string name="pref_rewind_sum">Dostosuj liczbę sekund, aby przejść do tyłu po naciśnięciu przycisku przewijania kliknięciu</string>
<string name="pref_fast_forward_sum">Dostosuj liczbę sekund, aby przejść do przodu, gdy szybko do przodu kliknięciu przycisku</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Włącz automatyczne wspieranie na flattr.</string>
<string name="auto_flattr_after_percent">Z-flattr-uj odcinki odegrane %d procentach.</string>

View File

@ -385,6 +385,8 @@
<string name="pref_cast_title">Suporte ao Chromecast</string>
<string name="pref_cast_message_play_flavor">Habilitar o suporte para reprodução remota de mídia em dispositivos Cast (como Chromecast, Caixa de som ou Android TV)</string>
<string name="pref_cast_message_free_flavor">O Chromecast necessita de bibliotecas proprietárias de terceiros que estão desativadas nesta versão do AntennaPod</string>
<string name="pref_rewind_sum">Personalizar o número de segundos para saltar para trás quando o botão de voltar é clicado</string>
<string name="pref_fast_forward_sum">Personalizar o número de segundos para saltar para a frente quando o botão de avanço rápido é clicado</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Abilitar automaticamente o flattr</string>
<string name="auto_flattr_after_percent">Episódio Flattr assim que %d porcento for tocado</string>

View File

@ -496,6 +496,8 @@
<string name="pref_resumeAfterCall_sum">Continuar reprodução ao terminar a chamada</string>
<string name="pref_resumeAfterCall_title">Continuar após a chamada</string>
<string name="pref_restart_required">Tem que reiniciar o AntennaPod para aplicar as alterações</string>
<string name="pref_rewind_sum">Personalizar o número de segundos para saltar para trás quando o botão de voltar é clicado</string>
<string name="pref_fast_forward_sum">Personalizar o número de segundos para saltar para a frente quando o botão de avanço rápido é clicado</string>
<!--Online feed view-->
<string name="subscribe_label">Subscrever</string>
<string name="subscribed_label">Subscrito</string>

View File

@ -160,6 +160,8 @@
<string name="pref_gpodnet_authenticate_title">Autentificare</string>
<string name="pref_playback_speed_title">Viteze de ascutare</string>
<string name="pref_playback_speed_sum">Modifică vitezele disponibile pentru viteza de ascultare.</string>
<string name="pref_fast_forward_sum">Personaliza numărul de secunde pentru a sări înainte atunci când butonul fast forward este apasat</string>
<string name="pref_rewind_sum">Personaliza numărul de secunde pentru a sări înapoi atunci când butonul de derulare înapoi se face clic</string>
<!--Auto-Flattr dialog-->
<!--Search-->
<string name="search_hint">Caută feeduri sau episoade</string>

View File

@ -384,6 +384,8 @@
<string name="pref_known_issues">Известные проблемы</string>
<string name="pref_no_browser_found">Веб-браузер не обнаружен.</string>
<string name="pref_cast_title">Поддержка Chromecast</string>
<string name="pref_rewind_sum">Настроить количество секунд для перехода назад, когда кнопка перемотки нажата</string>
<string name="pref_fast_forward_sum">Настроить количество секунд, чтобы перейти вперед, когда кнопка перемотки вперед нажата</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Включить автоматическую поддержку через Flattr</string>
<string name="auto_flattr_after_percent">Поддерживать через Flattr эпизоды, прослушанные на %d процентов</string>

View File

@ -385,6 +385,8 @@
<string name="pref_cast_title">Chromecast-stöd</string>
<string name="pref_cast_message_play_flavor">Aktivera stöd för fjärruppspelning av media på Cast-enheter (såsom Chromecast, Ljudanläggningar eller Android TV)</string>
<string name="pref_cast_message_free_flavor">Chromecast kräver propretiära tredjepartsbibliotek som inte är inkluderade i denna version av AntennaPod</string>
<string name="pref_rewind_sum">Anpassa antalet sekunder för att hoppa bakåt när bakåt-knappen klickas</string>
<string name="pref_fast_forward_sum">Anpassa antalet sekunder för att hoppa framåt när snabbspolning framåt klickar på knappen</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Aktivera automatisk Flattring</string>
<string name="auto_flattr_after_percent">Flattra episoden så snart %d procent har spelats</string>

View File

@ -317,6 +317,8 @@
<string name="send_email">E-posta gönder</string>
<string name="experimental_pref">Deneysel</string>
<string name="pref_sonic_title">Sonic ortam yürütücüsü</string>
<string name="pref_rewind_sum">Geri sarma düğmesi tıklandığında geriye atlamak için saniye sayısını özelleştirin</string>
<string name="pref_fast_forward_sum">Hızlı ileri sar düğmesi tıklandığında öne atlamak için saniye sayısını özelleştirin</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Otomatik Flattr\'lamayı etkinleştir</string>
<string name="auto_flattr_after_percent">Bölümün yüzde %d kısmı oynatıldığında Flattr\'la</string>

View File

@ -382,6 +382,8 @@
<string name="pref_known_issues">Відомі проблеми</string>
<string name="pref_no_browser_found">Веб браузер не знайдено.</string>
<string name="pref_cast_title">Підтримка для Chromecast</string>
<string name="pref_rewind_sum">Налаштувати кількість секунд для переходу назад, коли кнопка перемотування натиснута</string>
<string name="pref_fast_forward_sum">Налаштувати кількість секунд, щоб перейти вперед, коли кнопка перемотування вперед натиснута</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Включити автоматичне заохочення авторів через сервіс flattr</string>
<string name="auto_flattr_after_percent">Заохотити автора через Flattr щойно %d відсотків епізода було відтворено</string>

View File

@ -340,6 +340,8 @@
<string name="pref_proxy_title">代理</string>
<string name="pref_proxy_sum">选择一个网络代理</string>
<string name="pref_known_issues">已知问题</string>
<string name="pref_rewind_sum">自定义的秒数向后跳转点击快退按钮时</string>
<string name="pref_fast_forward_sum">自定义的秒数向前跳单击快进按钮时</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">启用自动 flattring</string>
<string name="auto_flattr_after_percent">当播放到百分之%d时Flattr改曲目</string>

View File

@ -296,13 +296,13 @@
<string name="pref_pauseOnDisconnect_sum">Pause playback when headphones or bluetooth are disconnected</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Resume playback when the headphones are reconnected</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Resume playback when bluetooth reconnects</string>
<string name="pref_hardwareForwardButtonSkips_title">Forward button skips</string>
<string name="pref_hardwareForwardButtonSkips_title">Forward Button Skips</string>
<string name="pref_hardwareForwardButtonSkips_sum">When pressing a hardware forward button skip to the next episode instead of fast-forwarding</string>
<string name="pref_followQueue_sum">Jump to next queue item when playback completes</string>
<string name="pref_auto_delete_sum">Delete episode when playback completes</string>
<string name="pref_auto_delete_title">Auto Delete</string>
<string name="pref_smart_mark_as_played_sum">Mark episodes as played even if less than a certain amount of seconds of playing time is still left</string>
<string name="pref_smart_mark_as_played_title">Smart mark as played</string>
<string name="pref_smart_mark_as_played_title">Smart Mark as Played</string>
<string name="pref_skip_keeps_episodes_sum">Keep episodes when they are skipped</string>
<string name="pref_skip_keeps_episodes_title">Keep Skipped Episodes</string>
<string name="playback_pref">Playback</string>
@ -373,8 +373,10 @@
<string name="pref_gpodnet_notifications_sum">This setting does not apply to authentication errors.</string>
<string name="pref_playback_speed_title">Playback Speeds</string>
<string name="pref_playback_speed_sum">Customize the speeds available for variable speed audio playback</string>
<string name="pref_fast_forward">Fast forward time</string>
<string name="pref_rewind">Rewind time</string>
<string name="pref_fast_forward">Fast Forward Skip Time</string>
<string name="pref_fast_forward_sum">Customize the number of seconds to jump forward when the fast forward button is clicked</string>
<string name="pref_rewind">Rewind Skip Time</string>
<string name="pref_rewind_sum">Customize the number of seconds to jump backwards when the rewind button is clicked</string>
<string name="pref_gpodnet_sethostname_title">Set hostname</string>
<string name="pref_gpodnet_sethostname_use_default_host">Use default host</string>
<string name="pref_expandNotify_title">Expand Notification</string>
@ -399,7 +401,7 @@
<string name="crash_report_sum">Send the latest crash report via e-mail</string>
<string name="send_email">Send e-mail</string>
<string name="experimental_pref">Experimental</string>
<string name="pref_sonic_title">Sonic media player</string>
<string name="pref_sonic_title">Sonic Media Player</string>
<string name="pref_sonic_message">Use built-in sonic media player as a replacement for Android\'s native mediaplayer and Prestissimo</string>
<string name="pref_current_value">Current value: %1$s</string>
<string name="pref_proxy_title">Proxy</string>