Wating for OpenCV library package installation added.

This commit is contained in:
Alexander Smorkalov 2012-10-08 14:35:04 +04:00
parent 11839e2cc9
commit febfdc9fa2

View File

@ -185,6 +185,8 @@ class AsyncServiceHelper
Log.d(TAG, "Trying to get library path"); Log.d(TAG, "Trying to get library path");
String path = mEngineService.getLibPathByVersion(mOpenCVersion); String path = mEngineService.getLibPathByVersion(mOpenCVersion);
if ((null == path) || (path.length() == 0)) if ((null == path) || (path.length() == 0))
{
if (!mLibraryInstallationProgress)
{ {
InstallCallbackInterface InstallQuery = new InstallCallbackInterface() { InstallCallbackInterface InstallQuery = new InstallCallbackInterface() {
public String getPackageName() public String getPackageName()
@ -197,6 +199,7 @@ class AsyncServiceHelper
{ {
if (mEngineService.installVersion(mOpenCVersion)) if (mEngineService.installVersion(mOpenCVersion))
{ {
mLibraryInstallationProgress = true;
mStatus = LoaderCallbackInterface.RESTART_REQUIRED; mStatus = LoaderCallbackInterface.RESTART_REQUIRED;
} }
else else
@ -230,11 +233,63 @@ class AsyncServiceHelper
}; };
mUserAppCallback.onPackageInstall(InstallCallbackInterface.NEW_INSTALLATION, InstallQuery); mUserAppCallback.onPackageInstall(InstallCallbackInterface.NEW_INSTALLATION, InstallQuery);
}
else
{
InstallCallbackInterface WaitQuery = new InstallCallbackInterface() {
public String getPackageName()
{
return "OpenCV library";
}
public void install() {
Log.e(TAG, "Nothing to install we just wait current installation");
}
public void cancel()
{
Log.d(TAG, "OpenCV library installation was canceled");
mLibraryInstallationProgress = false;
mStatus = LoaderCallbackInterface.INSTALL_CANCELED;
Log.d(TAG, "Init finished with status " + mStatus);
Log.d(TAG, "Unbind from service");
mAppContext.unbindService(mServiceConnection);
Log.d(TAG, "Calling using callback");
mUserAppCallback.onManagerConnected(mStatus);
}
public void wait_install() {
Log.d(TAG, "Waiting for current installation");
try
{
if (mEngineService.installVersion(mOpenCVersion))
{
mStatus = LoaderCallbackInterface.RESTART_REQUIRED;
}
else
{
Log.d(TAG, "OpenCV package was not installed!");
mStatus = LoaderCallbackInterface.MARKET_ERROR;
}
} catch (RemoteException e) {
e.printStackTrace();
mStatus = LoaderCallbackInterface.INIT_FAILED;
}
Log.d(TAG, "Init finished with status " + mStatus);
Log.d(TAG, "Unbind from service");
mAppContext.unbindService(mServiceConnection);
Log.d(TAG, "Calling using callback");
mUserAppCallback.onManagerConnected(mStatus);
}
};
mUserAppCallback.onPackageInstall(InstallCallbackInterface.INSTALLATION_PROGRESS, WaitQuery);
}
return; return;
} }
else else
{ {
Log.d(TAG, "Trying to get library list"); Log.d(TAG, "Trying to get library list");
mLibraryInstallationProgress = false;
String libs = mEngineService.getLibraryList(mOpenCVersion); String libs = mEngineService.getLibraryList(mOpenCVersion);
Log.d(TAG, "Library list: \"" + libs + "\""); Log.d(TAG, "Library list: \"" + libs + "\"");
Log.d(TAG, "First attempt to load libs"); Log.d(TAG, "First attempt to load libs");