android: Bring back broken unzip progress dialog.
Change-Id: I7c788f4fcbdf15aa4955f3970db045b47207f8de
This commit is contained in:
parent
0d9367744d
commit
3f4be75024
2 changed files with 22 additions and 11 deletions
|
@ -45,8 +45,8 @@ public class RockboxActivity extends Activity
|
|||
Intent intent = new Intent(this, RockboxService.class);
|
||||
intent.setAction(Intent.ACTION_MAIN);
|
||||
intent.putExtra("callback", new ResultReceiver(new Handler(getMainLooper())) {
|
||||
private boolean unzip = false;
|
||||
private ProgressDialog loadingdialog;
|
||||
|
||||
private void createProgressDialog()
|
||||
{
|
||||
loadingdialog = new ProgressDialog(RockboxActivity.this);
|
||||
|
@ -64,16 +64,21 @@ public class RockboxActivity extends Activity
|
|||
case RockboxService.RESULT_INVOKING_MAIN:
|
||||
if (loadingdialog != null)
|
||||
loadingdialog.dismiss();
|
||||
setContentView(new RockboxFramebuffer(RockboxActivity.this));
|
||||
break;
|
||||
case RockboxService.RESULT_LIB_LOAD_PROGRESS:
|
||||
if (loadingdialog == null)
|
||||
createProgressDialog();
|
||||
|
||||
loadingdialog.setIndeterminate(false);
|
||||
loadingdialog.setMax(resultData.getInt("max", 100));
|
||||
loadingdialog.setProgress(resultData.getInt("value", 0));
|
||||
break;
|
||||
case RockboxService.RESULT_LIB_LOADED:
|
||||
unzip = resultData.getBoolean("unzip");
|
||||
break;
|
||||
case RockboxService.RESULT_SERVICE_RUNNING:
|
||||
if (!unzip) /* defer to RESULT_INVOKING_MAIN */
|
||||
setContentView(new RockboxFramebuffer(RockboxActivity.this));
|
||||
setServiceActivity(true);
|
||||
break;
|
||||
case RockboxService.RESULT_ERROR_OCCURED:
|
||||
|
@ -85,7 +90,6 @@ public class RockboxActivity extends Activity
|
|||
}
|
||||
}
|
||||
});
|
||||
setContentView(new RockboxFramebuffer(this));
|
||||
startService(intent);
|
||||
}
|
||||
|
||||
|
|
|
@ -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()) {
|
||||
|
|
Loading…
Reference in a new issue