diff --git a/contrib/mobile/Android/AndroidManifest.xml b/contrib/mobile/Android/AndroidManifest.xml index 497f8065556a33df74c85949cc7eddab956dfdb0..ca9962a11329a39736e334fac6aae55974b34ee4 100644 --- a/contrib/mobile/Android/AndroidManifest.xml +++ b/contrib/mobile/Android/AndroidManifest.xml @@ -29,6 +29,9 @@ <activity android:name=".ModelList" android:label="@string/title_activity_main" /> + <activity + android:name=".AboutActivity" + android:label="@string/title_activity_about" /> <activity android:name=".MainActivity" android:label="@string/title_activity_main" diff --git a/contrib/mobile/Android/res/values/strings.xml b/contrib/mobile/Android/res/values/strings.xml index 76673652a1da6ae295d53762f5262c08368329bd..b03d59376975f4483316368c154f15c9565c0702 100644 --- a/contrib/mobile/Android/res/values/strings.xml +++ b/contrib/mobile/Android/res/values/strings.xml @@ -7,6 +7,7 @@ <string name="dialog_title_choosefile">Choose a file</string> <string name="error_nosdcard">No SDcard found on your device</string> <string name="title_activity_main">Onelab</string> + <string name="title_activity_about">About</string> <string name="title_activity_options">Parameters</string> <string name="error_nomshfile">No compatible files or directories in this folder</string> <string name="title_share">Share screenshot with …</string> @@ -17,4 +18,4 @@ <string name="postpro_intervalstype">Intervals type</string> <string name="postpro_intervals">Intervals</string> <string name="postpro_raisez">Raise (Z)</string> -</resources> \ No newline at end of file +</resources> diff --git a/contrib/mobile/Android/src/org/geuz/onelab/AboutActivity.java b/contrib/mobile/Android/src/org/geuz/onelab/AboutActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..b46b23274b564aaf99fd8120e1c250723b5fd576 --- /dev/null +++ b/contrib/mobile/Android/src/org/geuz/onelab/AboutActivity.java @@ -0,0 +1,28 @@ +package org.geuz.onelab; + +import java.lang.String; + +import android.app.Activity; +import android.webkit.WebView; + +public class AboutActivity extends Activity{ + + protected void onCreate(android.os.Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + WebView webview = new WebView(this); + String aboutGmsh = Gmsh.getAboutGmsh(); + String aboutGetDP = Gmsh.getAboutGetDP(); + String aboutOnelab = "<center><h3>Onelab/Mobile</h3>"; + try { + aboutOnelab += "Version "+this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName; + } + catch (android.content.pm.PackageManager.NameNotFoundException e) { + aboutOnelab += "Version ?.?.?"; + } + aboutOnelab += "<p>Copyright (C) 2014<br>Maxime Graulich and Christophe Geuzaine, University of Liège</p>"; + aboutOnelab += "<p>Visit <a href=\"http://onelab.info/\">http://onelab.info/</a> for more information</p>"; + webview.loadDataWithBaseURL("", aboutOnelab + aboutGmsh + aboutGetDP, "text/html", "UTF-8", ""); + setContentView(webview); + } + +} diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java index 9433fda62f5c92fdb3e2cccc984e7b0b0b0c4e88..fbcc0f0e6a09d0044f27789d25ec5318d535ec8f 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java @@ -37,6 +37,9 @@ public class Gmsh implements Parcelable { public native int animationPrev(); public native void setAnimation(int animation); + public static native String getAboutGmsh(); + public static native String getAboutGetDP(); + /** Java CLASS **/ private long ptr; private Handler handler; diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java b/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java index e5b10f527fb69de5ed715cd4be51c7077905ff99..8e1474817ee31aadfac94a677f8ea153c7122da3 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java @@ -104,6 +104,8 @@ public class ModelList extends Activity { @Override public boolean onCreateOptionsMenu(Menu menu) { + MenuItem about = menu.add("About"); + about.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); MenuItem loadFile = menu.add(R.string.button_open_file); loadFile.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); return super.onCreateOptionsMenu(menu); @@ -122,6 +124,10 @@ public class ModelList extends Activity { Toast.makeText(this, "No application found on your device to open the files.", Toast.LENGTH_LONG).show(); } } + else if(item.getTitle().equals("About")) { + Intent intent = new Intent(ModelList.this, AboutActivity.class); + startActivity(intent); + } return super.onMenuItemSelected(featureId, item); } diff --git a/contrib/mobile/androidGModel.cpp b/contrib/mobile/androidGModel.cpp index 6d15f60dabc94770de5340fbaadeebd9d48b5350..f7aef4cf93330fbb7cc3e12dc5e371eb57b9a2ef 100644 --- a/contrib/mobile/androidGModel.cpp +++ b/contrib/mobile/androidGModel.cpp @@ -6,6 +6,8 @@ #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__) #include <gmsh/Gmsh.h> +#include <gmsh/GmshConfig.h> +#include <gmsh/GmshVersion.h> #include <gmsh/GModel.h> #include <gmsh/onelab.h> #include <gmsh/onelabUtils.h> @@ -14,6 +16,9 @@ #include <gmsh/PViewData.h> #include <gmsh/PViewOptions.h> +#include <getdp/GetDPConfig.h> +#include <getdp/GetDPVersion.h> + #include "androidGModel.h" #include "drawContext.h" @@ -326,4 +331,46 @@ extern "C" { { set_animation(animation); } + JNIEXPORT jstring JNICALL Java_org_geuz_onelab_Gmsh_getAboutGmsh + (JNIEnv *env, jclass c) + { + std::ostringstream sstream; + sstream << "<center><h3>Gmsh</h3><br>version " << GMSH_VERSION + << "<p>Copyright (C) 1997-2014" + << "<br>Christophe Geuzaine and Jean-Francois Remacle" + << "<p><a href=\"http://geuz.org/gmsh/doc/CREDITS.txt\">Credits</a> " + << "and <a href=\"http://geuz.org/gmsh/doc/LICENSE.txt\">licensing " + << "information</a>" + << "<p>Please send all questions and bug reports to " + << "<a href=\"mailto:gmsh@geuz.org\">gmsh@geuz.org</a></center>" + << "<ul>" + << "<li><i>Build OS:</i> " << GMSH_OS + << "<li><i>Build date:</i> " << GMSH_DATE + << "<li><i>Build options:</i>" << GMSH_CONFIG_OPTIONS + << "</ul>" + << "<center>Visit <a href=\"http://geuz.org/gmsh/\">http://geuz.org/gmsh/</a> " + << "for more information</center>"; + return env->NewStringUTF(sstream.str().c_str()); + } + JNIEXPORT jstring JNICALL Java_org_geuz_onelab_Gmsh_getAboutGetDP + (JNIEnv *env, jclass c) + { + std::ostringstream sstream; + sstream << "<center><h3>GetDP</h3><br>version " << GETDP_VERSION + << "<p>Copyright (C) 1997-2014" + << "<br>Christophe Geuzaine and Patrick Dular, University of Liège" + << "<p><a href=\"http://geuz.org/getdp/doc/CREDITS.txt\">Credits</a> " + << "and <a href=\"http://geuz.org/getdp/doc/LICENSE.txt\">licensing " + << "information</a>" + << "<p>Please send all questions and bug reports to " + << "<a href=\"mailto:getdp@geuz.org\">getdp@geuz.org</a></center>" + << "<ul>" + << "<li><i>Build OS:</i> " << GETDP_OS + << "<li><i>Build date:</i> " << GETDP_DATE + << "<li><i>Build options:</i>" << GETDP_CONFIG_OPTIONS + << "</ul>" + << "<center>Visit <a href=\"http://geuz.org/getdp/\">http://geuz.org/getdp/</a> " + << "for more information</center>"; + return env->NewStringUTF(sstream.str().c_str()); + } } diff --git a/contrib/mobile/androidGModel.h b/contrib/mobile/androidGModel.h index 013cd64457cf720857917f8cb17ae0005e4d0b11..35d4d565d4ef895d22d822e64d29a639af87be1c 100644 --- a/contrib/mobile/androidGModel.h +++ b/contrib/mobile/androidGModel.h @@ -169,6 +169,22 @@ JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_animationPrev JNIEXPORT void JNICALL Java_org_geuz_onelab_Gmsh_setAnimation (JNIEnv *, jobject, jint); +/* + * Class: org_geuz_onelab_Gmsh + * Method: getAboutGmsh + * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I + */ +JNIEXPORT jstring JNICALL Java_org_geuz_onelab_Gmsh_getAboutGmsh + (JNIEnv *, jclass); + +/* + * Class: org_geuz_onelab_Gmsh + * Method: getAboutGetDP + * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I + */ +JNIEXPORT jstring JNICALL Java_org_geuz_onelab_Gmsh_getAboutGetDP + (JNIEnv *, jclass); + #ifdef __cplusplus } #endif