diff options
author | BogDan Vatra <bog_dan_ro@yahoo.com> | 2011-04-23 23:00:55 +0300 |
---|---|---|
committer | BogDan Vatra <bog_dan_ro@yahoo.com> | 2011-04-23 23:00:55 +0300 |
commit | 9b0a579a8a996f1db08f1f9864efc86cb805dfdd (patch) | |
tree | 249d739cdcaf0f5f6368274912a85a074512ee10 /Ministro | |
parent | 948143e320ceeee149a1ca02dc64f9e580a46b6a (diff) |
Handle correctly the dependencies
Diffstat (limited to 'Ministro')
-rw-r--r-- | Ministro/res/drawable-hdpi/logo.jpg | bin | 0 -> 49742 bytes | |||
-rw-r--r-- | Ministro/res/drawable-ldpi/logo.jpg | bin | 0 -> 49742 bytes | |||
-rw-r--r-- | Ministro/res/drawable-mdpi/logo.jpg | bin | 0 -> 49742 bytes | |||
-rw-r--r-- | Ministro/res/layout/main.xml | 2 | ||||
-rw-r--r-- | Ministro/src/eu/licentia/necessitas/ministro/MinistroActivity.java | 26 | ||||
-rw-r--r-- | Ministro/src/eu/licentia/necessitas/ministro/MinistroService.java | 4 |
6 files changed, 21 insertions, 11 deletions
diff --git a/Ministro/res/drawable-hdpi/logo.jpg b/Ministro/res/drawable-hdpi/logo.jpg Binary files differnew file mode 100644 index 0000000..a729ad3 --- /dev/null +++ b/Ministro/res/drawable-hdpi/logo.jpg diff --git a/Ministro/res/drawable-ldpi/logo.jpg b/Ministro/res/drawable-ldpi/logo.jpg Binary files differnew file mode 100644 index 0000000..a729ad3 --- /dev/null +++ b/Ministro/res/drawable-ldpi/logo.jpg diff --git a/Ministro/res/drawable-mdpi/logo.jpg b/Ministro/res/drawable-mdpi/logo.jpg Binary files differnew file mode 100644 index 0000000..a729ad3 --- /dev/null +++ b/Ministro/res/drawable-mdpi/logo.jpg diff --git a/Ministro/res/layout/main.xml b/Ministro/res/layout/main.xml index 440a65c..09e59c7 100644 --- a/Ministro/res/layout/main.xml +++ b/Ministro/res/layout/main.xml @@ -5,6 +5,6 @@ android:layout_height="fill_parent" > -<ImageView android:layout_width="fill_parent" android:src="@drawable/icon" android:visibility="visible" android:layout_height="fill_parent" android:id="@+id/image" android:scaleType="fitXY"></ImageView> +<ImageView android:layout_width="fill_parent" android:src="@drawable/logo" android:visibility="visible" android:layout_height="fill_parent" android:id="@+id/image" android:scaleType="fitXY"></ImageView> </LinearLayout> diff --git a/Ministro/src/eu/licentia/necessitas/ministro/MinistroActivity.java b/Ministro/src/eu/licentia/necessitas/ministro/MinistroActivity.java index 4fac46a..5c4a366 100644 --- a/Ministro/src/eu/licentia/necessitas/ministro/MinistroActivity.java +++ b/Ministro/src/eu/licentia/necessitas/ministro/MinistroActivity.java @@ -32,6 +32,7 @@ import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.ArrayList; +import java.util.Collections; import java.util.Enumeration; import javax.xml.parsers.DocumentBuilder; @@ -147,8 +148,8 @@ public class MinistroActivity extends Activity { while ((downloaded = instream.read(tmp)) != -1) { outstream.write(tmp, 0, downloaded); } - outstream.flush(); outstream.close(); + MinistroService.instance().refreshLibraries(); return version; } catch (ClientProtocolException e) { e.printStackTrace(); @@ -180,6 +181,7 @@ public class MinistroActivity extends Activity { @Override public void onCancel(DialogInterface dialog) { DownloadManager.this.cancel(false); + finishMe(); } }); m_dialog.show(); @@ -219,7 +221,6 @@ public class MinistroActivity extends Activity { String sha1 = Library.convertToHex(digester.digest()); if (sha1.equalsIgnoreCase(fileSha1)) { - outstream.flush(); outstream.close(); nativeChmode(filePath, 0644); return true; @@ -295,7 +296,6 @@ public class MinistroActivity extends Activity { } catch (Exception e) { e.printStackTrace(); } - return null; } @@ -325,7 +325,7 @@ public class MinistroActivity extends Activity { private ProgressDialog dialog = null; private ArrayList<Library> newLibs = new ArrayList<Library>(); - + private String m_message; @Override protected void onPreExecute() { dialog = ProgressDialog.show(MinistroActivity.this, "", @@ -348,17 +348,28 @@ public class MinistroActivity extends Activity { else version = MinistroService.instance().getVersion(); + ArrayList<String> notFoundModules = new ArrayList<String>(); + if (m_modules!=null) + { + ArrayList<String> requiredModules = new ArrayList<String>(); + Collections.addAll(requiredModules, m_modules); + MinistroService.instance().checkModules(requiredModules, notFoundModules); + } dom = builder.parse(new FileInputStream(MinistroService.instance().getVersionXmlFile())); factory = DocumentBuilderFactory.newInstance(); builder = factory.newDocumentBuilder(); root = dom.getDocumentElement(); root.normalize(); + + // extract device root certificates SharedPreferences preferences=getSharedPreferences("Ministro", MODE_PRIVATE); if (!preferences.getString("CODENAME", "").equals(android.os.Build.VERSION.CODENAME) || !preferences.getString("INCREMENTAL", "").equals(android.os.Build.VERSION.INCREMENTAL) || !preferences.getString("RELEASE", "").equals(android.os.Build.VERSION.RELEASE)) { + m_message = "Extracting SSL root certificates. Please wait..."; + publishProgress((Void[])null); String environmentVariables=root.getAttribute("environmentVariables"); environmentVariables=environmentVariables.replaceAll("MINISTRO_PATH", ""); String environmentVariablesList[]=environmentVariables.split("\t"); @@ -431,8 +442,8 @@ public class MinistroActivity extends Activity { } else {// download missing libraries - for (int j=0;j<m_modules.length;j++) - if (m_modules[j].equals(lib.name)) + for(String module : notFoundModules) + if (module.equals(lib.name)) { newLibs.add(lib); break; @@ -465,7 +476,7 @@ public class MinistroActivity extends Activity { @Override protected void onProgressUpdate(Void... nothing) { - dialog.setMessage("Found new version, compute required files to download. Please wait..."); + dialog.setMessage(m_message); super.onProgressUpdate(nothing); } @Override @@ -477,7 +488,6 @@ public class MinistroActivity extends Activity { } if (newLibs.size()>0 && result>0) { - MinistroService.instance().refreshLibraries(); Library[] libs = new Library[newLibs.size()]; libs = newLibs.toArray(libs); new DownloadManager().execute(libs); diff --git a/Ministro/src/eu/licentia/necessitas/ministro/MinistroService.java b/Ministro/src/eu/licentia/necessitas/ministro/MinistroService.java index 413c8b3..59f0474 100644 --- a/Ministro/src/eu/licentia/necessitas/ministro/MinistroService.java +++ b/Ministro/src/eu/licentia/necessitas/ministro/MinistroService.java @@ -76,7 +76,7 @@ public class MinistroService extends Service { // this method reload all downloaded libraries - ArrayList<Library> refreshLibraries() + synchronized ArrayList<Library> refreshLibraries() { synchronized (this) { try { @@ -252,7 +252,7 @@ public class MinistroService extends Service { // check/add all modules. Returns true if all modules are found. @SuppressWarnings("unchecked") - private boolean checkModules(Object lbs, Object notFoundModules) + public boolean checkModules(Object lbs, Object notFoundModules) { ArrayList<Module> modules= new ArrayList<Module>(); ArrayList<String> libs = (ArrayList<String>) lbs; |