From 0c1cdd2014f7b01d1e916dbe694cc30dbb7f540c Mon Sep 17 00:00:00 2001 From: Thomas Knepper Date: Fri, 2 Oct 2015 19:06:37 +0200 Subject: Update german translation --- app/src/main/res/values-de/strings.xml | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'app') diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 45b89df9..534a0f75 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -294,7 +294,7 @@ Bitte geben Sie eine gültige URL an. Bitte gültigen Nutzernamen angeben (keine führenden Leerzeichen). Erscheinung - Theme + Aussehen Hell Dunkel Schwarz @@ -382,8 +382,8 @@ Synchronisierung aktiv Podcast regelmäßig auf Änderungen prüfen Synchronisierungsintervall - 15 Minutes - 30 Minutes + 15 Minuten + 30 Minuten 1 Stunde 2 Stunden 4 Stunden @@ -641,5 +641,20 @@ 3 abgespielte Lieder behalten 2 abgespielte Lieder behalten Abgespielte Lieder behalten + Aktualisiert + Position + Lied + Offline + Zeige \"Löschen\" im Menü + Zeige \"Downloads\" im Menü + Zeige \"Permanent Cachen\" im Menü + Künstlerdetails + Ja + Nein + Zeige \"Jetzt wiedergeben\" im Menü + Zeige \"Mischen\" im Menü + Alle Titel mischen + Albenreihenfolge mischen + Alben mischen -- cgit v1.2.3 From a3d66eb3a0bc6df2b071f9477d83129118e9f2e3 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Fri, 16 Oct 2015 08:00:35 -0700 Subject: Update hu translation --- app/src/main/res/values-hu/strings.xml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index e3049769..9a1e5519 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -26,6 +26,8 @@ Nem található! Figyelem! Bezár + Nem + Igen Főoldal Médiatár @@ -437,7 +439,7 @@ Böngészés ID3 Tag alapján ID3 Tag alapú böngészés a mappastruktúra helyett. Subsonic 4.7+ verzió felett! Kilépés megerősítésének tiltása - A Főoldalon állva a vissza gomb megnyomásakor azonnali kilépés az alkalmazásból. + Főoldalon a vissza gomb megnyomásakor azonnali kilépés az alkalmazásból. A rendszer nyelvének felülbírálása A Dsub megjelenítése angol nyelven abban az esetben is, ha rendelkezik fordítással. Az alkalmazást törölni kell a memóriából, mert a beállítás csak újraindítás után lép érvénybe! Oldalsáv elemei @@ -599,11 +601,12 @@ Album információi Podcast információi Lejátszási lista információi + Előadó információi Podcast Státusz Előadó Album - Dal + Dalsorszám Műfaj Év Kiszolgáló formátuma -- cgit v1.2.3 From dbf8a12eb38102f02ff4b0ed0636a4fe59d702a4 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Sat, 17 Oct 2015 13:42:38 -0700 Subject: #574 Last.FM artwork fails if done by POST now --- .../java/github/daneren2005/dsub/service/RESTMusicService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java b/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java index 88489e10..b405211d 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java @@ -41,7 +41,9 @@ import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.conn.params.ConnManagerParams; import org.apache.http.conn.params.ConnPerRouteBean; @@ -1902,7 +1904,7 @@ public class RESTMusicService implements MusicService { while (true) { attempts++; HttpContext httpContext = new BasicHttpContext(); - final HttpPost request = new HttpPost(url); + final HttpRequestBase request = (url.indexOf("rest") == -1) ? new HttpGet(url) : new HttpPost(url); if (task != null) { // Attempt to abort the HTTP request if the task is cancelled. @@ -1929,12 +1931,12 @@ public class RESTMusicService implements MusicService { }); } - if (parameterNames != null) { + if (parameterNames != null && request instanceof HttpPost) { List params = new ArrayList(); for (int i = 0; i < parameterNames.size(); i++) { params.add(new BasicNameValuePair(parameterNames.get(i), String.valueOf(parameterValues.get(i)))); } - request.setEntity(new UrlEncodedFormEntity(params, Constants.UTF_8)); + ((HttpPost) request).setEntity(new UrlEncodedFormEntity(params, Constants.UTF_8)); } if (requestParams != null) { -- cgit v1.2.3 From 7bf60cbee7650834d64656f49748e4c70848d991 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Sat, 17 Oct 2015 13:46:50 -0700 Subject: Poll for service available instead of just relying on next call to getDownloadService to execute waiting handlers --- .../daneren2005/dsub/activity/SubsonicActivity.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java index d67893ef..dc64e9d1 100644 --- a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java +++ b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java @@ -954,6 +954,22 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte runnable.run(); } else { afterServiceAvailable.add(runnable); + checkIfServiceAvailable(); + } + } + private void checkIfServiceAvailable() { + if(getDownloadService() == null) { + handler.postDelayed(new Runnable() { + @Override + public void run() { + checkIfServiceAvailable(); + } + }, 50); + } else if(afterServiceAvailable.size() > 0) { + for(Runnable runnable: afterServiceAvailable) { + handler.post(runnable); + } + afterServiceAvailable.clear(); } } -- cgit v1.2.3 From dc1e1b7edce936d867b9c8f6a32fac461461b082 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Mon, 19 Oct 2015 21:36:57 -0700 Subject: #572 Add option to never try to resume from remote play queue --- .../dsub/activity/SubsonicFragmentActivity.java | 75 +++++++++++++++------- .../github/daneren2005/dsub/util/Constants.java | 1 + app/src/main/res/values/strings.xml | 1 + 3 files changed, 55 insertions(+), 22 deletions(-) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java index 8d3bf099..0dbb643f 100644 --- a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java +++ b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java @@ -32,11 +32,13 @@ import android.os.Handler; import android.preference.PreferenceManager; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; +import android.support.v7.app.AlertDialog; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.CheckBox; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; @@ -673,6 +675,10 @@ public class SubsonicFragmentActivity extends SubsonicActivity implements Downlo }.execute(); } private void loadRemotePlayQueue() { + if(Util.getPreferences(this).getBoolean(Constants.PREFERENCES_KEY_RESUME_PLAY_QUEUE_NEVER, false)) { + return; + } + final SubsonicActivity context = this; new SilentBackgroundTask(this) { private PlayerQueue playerQueue; @@ -715,32 +721,57 @@ public class SubsonicFragmentActivity extends SubsonicActivity implements Downlo }.execute(); } private void promptRestoreFromRemoteQueue(final PlayerQueue remoteState) { - Util.confirmDialog(this, R.string.download_restore_play_queue, Util.formatDate(remoteState.changed), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - new SilentBackgroundTask(SubsonicFragmentActivity.this) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + String message = getResources().getString(R.string.common_confirm_message, getResources().getString(R.string.download_restore_play_queue).toLowerCase(), Util.formatDate(remoteState.changed)); + builder.setIcon(android.R.drawable.ic_dialog_alert) + .setTitle(R.string.common_confirm) + .setMessage(message) + .setPositiveButton(R.string.common_ok, new DialogInterface.OnClickListener() { @Override - protected Void doInBackground() throws Throwable { - DownloadService downloadService = getDownloadService(); - downloadService.clear(); - downloadService.download(remoteState.songs, false, false, false, false, remoteState.currentPlayingIndex, remoteState.currentPlayingPosition); - return null; + public void onClick(DialogInterface dialogInterface, int i) { + new SilentBackgroundTask(SubsonicFragmentActivity.this) { + @Override + protected Void doInBackground() throws Throwable { + DownloadService downloadService = getDownloadService(); + downloadService.clear(); + downloadService.download(remoteState.songs, false, false, false, false, remoteState.currentPlayingIndex, remoteState.currentPlayingPosition); + return null; + } + }.execute(); } - }.execute(); - } - }, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - new SilentBackgroundTask(SubsonicFragmentActivity.this) { + }) + .setNeutralButton(R.string.common_cancel, new DialogInterface.OnClickListener() { @Override - protected Void doInBackground() throws Throwable { - DownloadService downloadService = getDownloadService(); - downloadService.serializeQueue(false); - return null; + public void onClick(DialogInterface dialogInterface, int i) { + new SilentBackgroundTask(SubsonicFragmentActivity.this) { + @Override + protected Void doInBackground() throws Throwable { + DownloadService downloadService = getDownloadService(); + downloadService.serializeQueue(false); + return null; + } + }.execute(); } - }.execute(); - } - }); + }) + .setNegativeButton(R.string.common_never, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + new SilentBackgroundTask(SubsonicFragmentActivity.this) { + @Override + protected Void doInBackground() throws Throwable { + DownloadService downloadService = getDownloadService(); + downloadService.serializeQueue(false); + + SharedPreferences.Editor editor = Util.getPreferences(SubsonicFragmentActivity.this).edit(); + editor.putBoolean(Constants.PREFERENCES_KEY_RESUME_PLAY_QUEUE_NEVER, true); + editor.commit(); + return null; + } + }.execute(); + } + }); + + builder.create().show(); } private void createAccount() { diff --git a/app/src/main/java/github/daneren2005/dsub/util/Constants.java b/app/src/main/java/github/daneren2005/dsub/util/Constants.java index 22463d9d..3ac5ee90 100644 --- a/app/src/main/java/github/daneren2005/dsub/util/Constants.java +++ b/app/src/main/java/github/daneren2005/dsub/util/Constants.java @@ -166,6 +166,7 @@ public final class Constants { public static final String PREFERENCES_KEY_START_ON_HEADPHONES = "startOnHeadphones"; public static final String PREFERENCES_KEY_COLOR_ACTION_BAR = "colorActionBar"; public static final String PREFERENCES_KEY_SHUFFLE_BY_ALBUM = "shuffleByAlbum"; + public static final String PREFERENCES_KEY_RESUME_PLAY_QUEUE_NEVER = "neverResumePlayQueue"; public static final String OFFLINE_SCROBBLE_COUNT = "scrobbleCount"; public static final String OFFLINE_SCROBBLE_ID = "scrobbleID"; diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7c682930..8f5cec71 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -28,6 +28,7 @@ Close No Yes + Never Home Library -- cgit v1.2.3