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 intent = new Intent(this, RockboxService.class);
|
||||||
intent.setAction(Intent.ACTION_MAIN);
|
intent.setAction(Intent.ACTION_MAIN);
|
||||||
intent.putExtra("callback", new ResultReceiver(new Handler(getMainLooper())) {
|
intent.putExtra("callback", new ResultReceiver(new Handler(getMainLooper())) {
|
||||||
|
private boolean unzip = false;
|
||||||
private ProgressDialog loadingdialog;
|
private ProgressDialog loadingdialog;
|
||||||
|
|
||||||
private void createProgressDialog()
|
private void createProgressDialog()
|
||||||
{
|
{
|
||||||
loadingdialog = new ProgressDialog(RockboxActivity.this);
|
loadingdialog = new ProgressDialog(RockboxActivity.this);
|
||||||
|
@ -64,16 +64,21 @@ public class RockboxActivity extends Activity
|
||||||
case RockboxService.RESULT_INVOKING_MAIN:
|
case RockboxService.RESULT_INVOKING_MAIN:
|
||||||
if (loadingdialog != null)
|
if (loadingdialog != null)
|
||||||
loadingdialog.dismiss();
|
loadingdialog.dismiss();
|
||||||
|
setContentView(new RockboxFramebuffer(RockboxActivity.this));
|
||||||
break;
|
break;
|
||||||
case RockboxService.RESULT_LIB_LOAD_PROGRESS:
|
case RockboxService.RESULT_LIB_LOAD_PROGRESS:
|
||||||
if (loadingdialog == null)
|
if (loadingdialog == null)
|
||||||
createProgressDialog();
|
createProgressDialog();
|
||||||
|
|
||||||
loadingdialog.setIndeterminate(false);
|
loadingdialog.setIndeterminate(false);
|
||||||
loadingdialog.setMax(resultData.getInt("max", 100));
|
loadingdialog.setMax(resultData.getInt("max", 100));
|
||||||
loadingdialog.setProgress(resultData.getInt("value", 0));
|
loadingdialog.setProgress(resultData.getInt("value", 0));
|
||||||
break;
|
break;
|
||||||
|
case RockboxService.RESULT_LIB_LOADED:
|
||||||
|
unzip = resultData.getBoolean("unzip");
|
||||||
|
break;
|
||||||
case RockboxService.RESULT_SERVICE_RUNNING:
|
case RockboxService.RESULT_SERVICE_RUNNING:
|
||||||
|
if (!unzip) /* defer to RESULT_INVOKING_MAIN */
|
||||||
|
setContentView(new RockboxFramebuffer(RockboxActivity.this));
|
||||||
setServiceActivity(true);
|
setServiceActivity(true);
|
||||||
break;
|
break;
|
||||||
case RockboxService.RESULT_ERROR_OCCURED:
|
case RockboxService.RESULT_ERROR_OCCURED:
|
||||||
|
@ -85,7 +90,6 @@ public class RockboxActivity extends Activity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
setContentView(new RockboxFramebuffer(this));
|
|
||||||
startService(intent);
|
startService(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,6 @@ public class RockboxService extends Service
|
||||||
|
|
||||||
if (!rockbox_running)
|
if (!rockbox_running)
|
||||||
startService();
|
startService();
|
||||||
putResult(RESULT_LIB_LOADED);
|
|
||||||
|
|
||||||
if (intent.getAction().equals(Intent.ACTION_MEDIA_BUTTON))
|
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 rockboxCreditsPath = "/data/data/org.rockbox/app_rockbox/rockbox/rocks/viewers";
|
||||||
String rockboxSdDirPath = "/sdcard/rockbox";
|
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
|
/* 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
|
* 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
|
* 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 */
|
/* use arbitrary file to determine whether extracting is needed */
|
||||||
File arbitraryFile = new File(rockboxCreditsPath, "credits.rock");
|
File arbitraryFile = new File(rockboxCreditsPath, "credits.rock");
|
||||||
File rockboxInfoFile = new File(rockboxSdDirPath, "rockbox-info.txt");
|
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;
|
boolean extractToSd = false;
|
||||||
if(rockboxInfoFile.exists()) {
|
if(rockboxInfoFile.exists()) {
|
||||||
|
|
Loading…
Reference in a new issue