aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-07-13 19:36:58 -0700
committerScott Jackson <daneren2005@gmail.com>2015-07-13 19:37:09 -0700
commita12581051e8bce57c085a50082c47edbe5848036 (patch)
tree14ddeb684cbea13550ae3c46d0b2c0215d172946 /app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java
parentad11c8479efb9ebce977edee15cdeb2838deba63 (diff)
downloaddsub-a12581051e8bce57c085a50082c47edbe5848036.tar.gz
dsub-a12581051e8bce57c085a50082c47edbe5848036.tar.bz2
dsub-a12581051e8bce57c085a50082c47edbe5848036.zip
#527 Change from polling to using DownloadService events
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java22
1 files changed, 20 insertions, 2 deletions
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 33d978bf..1492c778 100644
--- a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java
+++ b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java
@@ -29,6 +29,7 @@ import android.media.AudioManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
+import android.os.Handler;
import android.support.design.widget.NavigationView;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v4.app.Fragment;
@@ -82,6 +83,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
private static final int MENU_GROUP_SERVER = 10;
private static final int MENU_ITEM_SERVER_BASE = 100;
+ private final List<Runnable> afterServiceAvailable = new ArrayList<>();
private boolean drawerIdle = true;
private boolean destroyed = false;
private boolean finished = false;
@@ -91,6 +93,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
protected View secondaryContainer;
protected boolean tv = false;
protected boolean touchscreen = true;
+ protected Handler handler = new Handler();
Spinner actionBarSpinner;
ArrayAdapter<CharSequence> spinnerAdapter;
ViewGroup rootView;
@@ -871,13 +874,28 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
for (int i = 0; i < 5; i++) {
DownloadService downloadService = DownloadService.getInstance();
if (downloadService != null) {
- return downloadService;
+ break;
}
Log.w(TAG, "DownloadService not running. Attempting to start it.");
startService(new Intent(this, DownloadService.class));
Util.sleepQuietly(50L);
}
- return DownloadService.getInstance();
+
+ final DownloadService downloadService = DownloadService.getInstance();
+ if(downloadService != null && afterServiceAvailable.size() > 0) {
+ for(Runnable runnable: afterServiceAvailable) {
+ handler.post(runnable);
+ }
+ afterServiceAvailable.clear();
+ }
+ return downloadService;
+ }
+ public void runWhenServiceAvailable(Runnable runnable) {
+ if(getDownloadService() != null) {
+ runnable.run();
+ } else {
+ afterServiceAvailable.add(runnable);
+ }
}
public static String getThemeName() {