From f22a3af4831b54c586b293e4d2d9d09c2292f78f Mon Sep 17 00:00:00 2001
From: Alexander Smorkalov <alexander.smorkalov@itseez.com>
Date: Tue, 11 Sep 2012 17:04:01 +0400
Subject: [PATCH] Issue #2345 Adapt OpenCV Manager UI for different screen
 resolution partially fixed. Layout for small resolution added. Layout for
 small display resolution added.

---
 .../service/engine/res/layout-small/info.xml  |  61 +++++++++
 .../service/engine/res/layout-small/main.xml  | 120 ++++++++++++++++++
 android/service/engine/res/layout/main.xml    |   3 +-
 .../engine/manager/ManagerActivity.java       |   2 +-
 .../engine/manager/PackageListAdapter.java    |   6 +-
 5 files changed, 189 insertions(+), 3 deletions(-)
 create mode 100644 android/service/engine/res/layout-small/info.xml
 create mode 100644 android/service/engine/res/layout-small/main.xml

diff --git a/android/service/engine/res/layout-small/info.xml b/android/service/engine/res/layout-small/info.xml
new file mode 100644
index 000000000..cd2e874a0
--- /dev/null
+++ b/android/service/engine/res/layout-small/info.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:focusable="false"
+    android:orientation="vertical" >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" >
+
+        <TextView
+            android:id="@+id/InfoName"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Large Text"
+            android:textAppearance="?android:attr/textAppearanceMedium" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" >
+
+        <TextView
+            android:id="@+id/textView1"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Version: "
+            android:textAppearance="?android:attr/textAppearanceSmall" />
+
+        <TextView
+            android:id="@+id/InfoVersion"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Small Text"
+            android:textAppearance="?android:attr/textAppearanceSmall" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" >
+
+        <TextView
+            android:id="@+id/textView2"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Target hardware: "
+            android:textAppearance="?android:attr/textAppearanceSmall" />
+
+        <TextView
+            android:id="@+id/InfoHardware"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Small Text"
+            android:textAppearance="?android:attr/textAppearanceSmall" />
+
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/android/service/engine/res/layout-small/main.xml b/android/service/engine/res/layout-small/main.xml
new file mode 100644
index 000000000..6f8611f50
--- /dev/null
+++ b/android/service/engine/res/layout-small/main.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:orientation="vertical" >
+
+    <TextView
+        android:id="@+id/textView4"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="About"
+        android:textAppearance="?android:attr/textAppearanceMedium" />
+
+    <TextView
+        android:id="@+id/textView2"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:autoLink="web"
+        android:text="OpenCV is Open Computer Vision library. OpenCV Manager provides the best version of the OpenCV for your hardware. See www.opencv.org for details."
+        android:textAppearance="?android:attr/textAppearanceSmall" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" >
+
+        <TextView
+            android:id="@+id/EngineVersionCaption"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Version: "
+            android:textAppearance="?android:attr/textAppearanceSmall" />
+
+        <TextView
+            android:id="@+id/EngineVersionValue"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="version"
+            android:textAppearance="?android:attr/textAppearanceSmall" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" >
+
+    </LinearLayout>
+
+    <TextView
+        android:id="@+id/textView3"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Device information"
+        android:textAppearance="?android:attr/textAppearanceMedium" android:layout_marginTop="15dp"/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical" >
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content" >
+
+            <TextView
+                android:id="@+id/HardwareCaption"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="Hardware: "
+                android:textAppearance="?android:attr/textAppearanceSmall" />
+
+            <TextView
+                android:id="@+id/HardwareValue"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="Hardware"
+                android:textAppearance="?android:attr/textAppearanceSmall" />
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" >
+
+        <TextView
+            android:id="@+id/OsVersionCaption"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="OS version: "
+            android:textAppearance="?android:attr/textAppearanceSmall" />
+
+        <TextView
+            android:id="@+id/OsVersionValue"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Os Specification"
+            android:textAppearance="?android:attr/textAppearanceSmall" />
+
+    </LinearLayout>
+
+    <TextView
+        android:id="@+id/textView1"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Installed packages"
+        android:textAppearance="?android:attr/textAppearanceMedium" android:layout_marginTop="15dp"/>
+
+    <ListView
+        android:id="@+id/InstalledPackageList"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" android:layout_weight="1">
+    </ListView>
+
+    <Button
+        android:id="@+id/CheckEngineUpdate"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="Check for update" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/android/service/engine/res/layout/main.xml b/android/service/engine/res/layout/main.xml
index c02e0e2e5..c26013140 100644
--- a/android/service/engine/res/layout/main.xml
+++ b/android/service/engine/res/layout/main.xml
@@ -15,7 +15,8 @@
         android:id="@+id/textView2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="OpenCV library (www.opencv.org) is used by other applications for image enhancement, panorama stitching, object detection, recognition and tracking and so on. OpenCV Manager provides the best version of the OpenCV for your hardware."
+        android:autoLink="web"
+        android:text="OpenCV library is used by other applications for image enhancement, panorama stitching, object detection, recognition and tracking and so on. OpenCV Manager provides the best version of the OpenCV for your hardware. See www.opencv.org for details."
         android:textAppearance="?android:attr/textAppearanceMedium" />
 
     <LinearLayout
diff --git a/android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java b/android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java
index d31680559..06d93d490 100644
--- a/android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java
+++ b/android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java
@@ -290,7 +290,7 @@ public class ManagerActivity extends Activity
 	            if (null != ActivePackagePath && ActivePackagePath.indexOf(mInstalledPackageInfo[i].packageName) >= 0)
 	            {
 	            	temp.put("Activity", "y");
-	            	PublicName += " (Active)";
+	            	PublicName += " (in use)";
 	            }
 	            else
 	            {
diff --git a/android/service/engine/src/org/opencv/engine/manager/PackageListAdapter.java b/android/service/engine/src/org/opencv/engine/manager/PackageListAdapter.java
index cbc0acad6..b684ce1e7 100644
--- a/android/service/engine/src/org/opencv/engine/manager/PackageListAdapter.java
+++ b/android/service/engine/src/org/opencv/engine/manager/PackageListAdapter.java
@@ -24,10 +24,14 @@ public class PackageListAdapter extends SimpleAdapter {
 	  @SuppressWarnings("unchecked")
 	  Map<String, String> item = (Map<String, String>)getItem(position);
 	  Log.d("PackageListAdapter", item.get("Activity"));
-	  if (item.get("Activity") != "n")
+	  if (item.get("Activity") == "y")
 	  {
 		  view.setBackgroundColor(0x50ffffff);
 	  }
+	  else
+	  {
+		  view.setBackgroundColor(0xff000000);
+	  }
 
 	  return view;
 	}