summaryrefslogtreecommitdiffstats
path: root/Ministro
diff options
context:
space:
mode:
authorBogDan Vatra <bog_dan_ro@yahoo.com>2011-04-23 23:00:55 +0300
committerBogDan Vatra <bog_dan_ro@yahoo.com>2011-04-23 23:00:55 +0300
commit9b0a579a8a996f1db08f1f9864efc86cb805dfdd (patch)
tree249d739cdcaf0f5f6368274912a85a074512ee10 /Ministro
parent948143e320ceeee149a1ca02dc64f9e580a46b6a (diff)
Handle correctly the dependencies
Diffstat (limited to 'Ministro')
-rw-r--r--Ministro/res/drawable-hdpi/logo.jpgbin0 -> 49742 bytes
-rw-r--r--Ministro/res/drawable-ldpi/logo.jpgbin0 -> 49742 bytes
-rw-r--r--Ministro/res/drawable-mdpi/logo.jpgbin0 -> 49742 bytes
-rw-r--r--Ministro/res/layout/main.xml2
-rw-r--r--Ministro/src/eu/licentia/necessitas/ministro/MinistroActivity.java26
-rw-r--r--Ministro/src/eu/licentia/necessitas/ministro/MinistroService.java4
6 files changed, 21 insertions, 11 deletions
diff --git a/Ministro/res/drawable-hdpi/logo.jpg b/Ministro/res/drawable-hdpi/logo.jpg
new file mode 100644
index 0000000..a729ad3
--- /dev/null
+++ b/Ministro/res/drawable-hdpi/logo.jpg
Binary files differ
diff --git a/Ministro/res/drawable-ldpi/logo.jpg b/Ministro/res/drawable-ldpi/logo.jpg
new file mode 100644
index 0000000..a729ad3
--- /dev/null
+++ b/Ministro/res/drawable-ldpi/logo.jpg
Binary files differ
diff --git a/Ministro/res/drawable-mdpi/logo.jpg b/Ministro/res/drawable-mdpi/logo.jpg
new file mode 100644
index 0000000..a729ad3
--- /dev/null
+++ b/Ministro/res/drawable-mdpi/logo.jpg
Binary files differ
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;