summaryrefslogtreecommitdiff
path: root/android/src/org/rockbox/RockboxService.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/src/org/rockbox/RockboxService.java')
-rw-r--r--android/src/org/rockbox/RockboxService.java23
1 files changed, 15 insertions, 8 deletions
diff --git a/android/src/org/rockbox/RockboxService.java b/android/src/org/rockbox/RockboxService.java
index c07ed9d328..e38ff350a3 100644
--- a/android/src/org/rockbox/RockboxService.java
+++ b/android/src/org/rockbox/RockboxService.java
@@ -121,7 +121,6 @@ public class RockboxService extends Service
if (!rockbox_running)
startService();
- putResult(RESULT_LIB_LOADED);
if (intent.getAction().equals(Intent.ACTION_MEDIA_BUTTON))
{
@@ -163,12 +162,6 @@ public class RockboxService extends Service
String rockboxCreditsPath = "/data/data/org.rockbox/app_rockbox/rockbox/rocks/viewers";
String rockboxSdDirPath = "/sdcard/rockbox";
- /* load library before unzipping which may take a while */
- synchronized (lock) {
- System.loadLibrary("rockbox");
- lock.notify();
- }
-
/* the following block unzips libmisc.so, which contains the files
* we ship, such as themes. It's needed to put it into a .so file
* because there's no other way to ship files and have access
@@ -178,7 +171,21 @@ public class RockboxService extends Service
/* use arbitrary file to determine whether extracting is needed */
File arbitraryFile = new File(rockboxCreditsPath, "credits.rock");
File rockboxInfoFile = new File(rockboxSdDirPath, "rockbox-info.txt");
- if (!arbitraryFile.exists() || (libMisc.lastModified() > arbitraryFile.lastModified()))
+ /* unzip newer or doesnt exist */
+ boolean doExtract = !arbitraryFile.exists()
+ || (libMisc.lastModified() > arbitraryFile.lastModified());
+
+ /* load library before unzipping which may take a while
+ * but at least tell if unzipping is going to be done before*/
+ synchronized (lock) {
+ Bundle bdata = new Bundle();
+ bdata.putBoolean("unzip", doExtract);
+ System.loadLibrary("rockbox");
+ putResult(RESULT_LIB_LOADED, bdata);
+ lock.notify();
+ }
+
+ if (doExtract)
{
boolean extractToSd = false;
if(rockboxInfoFile.exists()) {