OpenCV version swithed to 4 digit in GUI and package revision number.
authorAlexander Smorkalov <alexander.smorkalov@itseez.com>
Wed, 27 Feb 2013 10:03:02 +0000 (14:03 +0400)
committerAlexander Smorkalov <alexander.smorkalov@itseez.com>
Thu, 28 Feb 2013 08:59:24 +0000 (12:59 +0400)
android/libinfo/info.c
android/package/AndroidManifest.xml
android/service/engine/jni/NativeService/PackageInfo.cpp
android/service/engine/jni/Tests/PackageInfoTest.cpp
android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java

index 225cc10..073a505 100644 (file)
@@ -7,7 +7,7 @@ const char* GetLibraryList(void);
 JNIEXPORT jstring JNICALL Java_org_opencv_android_StaticHelper_getLibraryList(JNIEnv *, jclass);
 
 #define PACKAGE_NAME "org.opencv.lib_v" CVAUX_STR(CV_VERSION_EPOCH) CVAUX_STR(CV_VERSION_MAJOR) "_" ANDROID_PACKAGE_PLATFORM
-#define PACKAGE_REVISION CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(ANDROID_PACKAGE_RELEASE)
+#define PACKAGE_REVISION CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(ANDROID_PACKAGE_RELEASE) "." CVAUX_STR(CV_VERSION_REVISION)
 
 const char* GetPackageName(void)
 {
index 3b6bc7d..8997b16 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="org.opencv.lib_v@OPENCV_VERSION_MAJOR@@OPENCV_VERSION_MINOR@_@ANDROID_PACKAGE_PLATFORM@"
-    android:versionCode="@OPENCV_VERSION_PATCH@@ANDROID_PACKAGE_RELEASE@"
-    android:versionName="@OPENCV_VERSION_PATCH@.@ANDROID_PACKAGE_RELEASE@" >
+    android:versionCode="@OPENCV_VERSION_PATCH@@OPENCV_VERSION_TWEAK@@ANDROID_PACKAGE_RELEASE@"
+    android:versionName="@OPENCV_VERSION_PATCH@.@OPENCV_VERSION_TWEAK@.@ANDROID_PACKAGE_RELEASE@" >
 
     <uses-sdk android:minSdkVersion="@ANDROID_SDK_VERSION@" />
     <uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
index 7428de0..2eb8230 100644 (file)
@@ -136,7 +136,17 @@ inline int SplitVersion(const vector<string>& features, const string& package_ve
 
         // Taking release and build number from package revision
         vector<string> tmp2 = SplitStringVector(package_version, '.');
-        result += atoi(tmp2[0].c_str())*100 + atoi(tmp2[1].c_str());
+        if (tmp2.size() == 2)
+        {
+            // the 2nd digit is revision
+            result += atoi(tmp2[0].c_str())*100 + 00;
+        }
+        else
+        {
+            // the 2nd digit is part of library version
+            // the 3rd digit is revision
+            result += atoi(tmp2[0].c_str())*100 + atoi(tmp2[1].c_str());
+        }
     }
     else
     {
@@ -194,10 +204,10 @@ inline int SplitPlatfrom(const vector<string>& features)
  * Example: armv7_neon
  */
 PackageInfo::PackageInfo(int version, int platform, int cpu_id, std::string install_path):
-Version(version),
-Platform(platform),
-CpuID(cpu_id),
-InstallPath("")
+    Version(version),
+    Platform(platform),
+    CpuID(cpu_id),
+    InstallPath("")
 {
     #ifndef __SUPPORT_TEGRA3
     Platform = PLATFORM_UNKNOWN;
index 2e747c3..6bc8485 100644 (file)
@@ -157,6 +157,20 @@ TEST(PackageInfo, MipsFromFullName)
 }
 #endif
 
+TEST(PackageInfo, Check2DigitRevision)
+{
+    PackageInfo info("org.opencv.lib_v23_armv7a_neon", "/data/data/org.opencv.lib_v23_armv7_neon", "4.1");
+    EXPECT_EQ(2030400, info.GetVersion());
+    EXPECT_EQ(ARCH_ARMv7 | FEATURES_HAS_NEON, info.GetCpuID());
+}
+
+TEST(PackageInfo, Check3DigitRevision)
+{
+    PackageInfo info("org.opencv.lib_v23_armv7a_neon", "/data/data/org.opencv.lib_v23_armv7_neon", "4.1.5");
+    EXPECT_EQ(2030401, info.GetVersion());
+    EXPECT_EQ(ARCH_ARMv7 | FEATURES_HAS_NEON, info.GetCpuID());
+}
+
 TEST(PackageInfo, Comparator1)
 {
     PackageInfo info1(2040000, PLATFORM_UNKNOWN, ARCH_X86);
index 6f604fb..fad2797 100644 (file)
@@ -299,10 +299,9 @@ public class ManagerActivity extends Activity
                 else
                     NativeLibDir = "/data/data/" + mInstalledPackageInfo[i].packageName + "/lib";
 
-                OpenCVLibraryInfo NativeInfo = new OpenCVLibraryInfo(NativeLibDir);
-
                 if (PackageName.equals("org.opencv.engine"))
                 {
+                    OpenCVLibraryInfo NativeInfo = new OpenCVLibraryInfo(NativeLibDir);
                     if (NativeInfo.status())
                     {
                         PublicName = "Built-in OpenCV library";
@@ -348,9 +347,7 @@ public class ManagerActivity extends Activity
 
                 if (null != ActivePackagePath)
                 {
-                    int start = ActivePackagePath.indexOf(mInstalledPackageInfo[i].packageName);
-                    int stop = start + mInstalledPackageInfo[i].packageName.length();
-                    if (start >= 0 && ActivePackagePath.charAt(stop) == '/')
+                    if (ActivePackagePath.equals(NativeLibDir))
                     {
                         temp.put("Activity", "y");
                         Tags = "active";
@@ -405,13 +402,22 @@ public class ManagerActivity extends Activity
         if (OpenCVersion == null || PackageVersion == null)
             return "unknown";
 
-        int dot = PackageVersion.indexOf(".");
-        if (dot == -1 || OpenCVersion.length() == 0)
+        String[] revisions = PackageVersion.split("\\.");
+
+        if (revisions.length <= 1 || OpenCVersion.length() == 0)
             return "unknown";
         else
-            return OpenCVersion.substring(0,  OpenCVersion.length()-1) + "." +
-                OpenCVersion.toCharArray()[OpenCVersion.length()-1] + "." +
-                PackageVersion.substring(0, dot) + " rev " + PackageVersion.substring(dot+1);
+            if (revisions.length == 2)
+                // the 2nd digit is revision
+                return OpenCVersion.substring(0,  OpenCVersion.length()-1) + "." +
+                    OpenCVersion.toCharArray()[OpenCVersion.length()-1] + "." +
+                    revisions[0] + " rev " + revisions[1];
+            else
+                // the 2nd digit is part of library version
+                // the 3rd digit is revision
+                return OpenCVersion.substring(0,  OpenCVersion.length()-1) + "." +
+                    OpenCVersion.toCharArray()[OpenCVersion.length()-1] + "." +
+                    revisions[0] + "." + revisions[1] + " rev " + revisions[2];
     }
 
     protected String ConvertPackageName(String Name, String Version)