From 35d7d2c0b58a006dfbd21f8450a21b205a10cae5 Mon Sep 17 00:00:00 2001
From: Hannes Janetzek <hannes.janetzek@gmail.com>
Date: Sun, 19 Jan 2014 17:25:27 +0100
Subject: [PATCH] android-example: add theme chooser menu + stress test

---
 vtm-android-example/res/menu/theme_menu.xml   | 10 ++++
 vtm-android-example/res/values/strings.xml    |  3 +
 .../oscim/android/test/SimpleMapActivity.java | 56 ++++++++++++++++++-
 3 files changed, 67 insertions(+), 2 deletions(-)
 create mode 100644 vtm-android-example/res/menu/theme_menu.xml

diff --git a/vtm-android-example/res/menu/theme_menu.xml b/vtm-android-example/res/menu/theme_menu.xml
new file mode 100644
index 00000000..91d58b89
--- /dev/null
+++ b/vtm-android-example/res/menu/theme_menu.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+    <group android:id="@+id/themes" android:checkableBehavior="single" android:menuCategory="container">
+        <item android:id="@+id/theme_default" android:checkable="true" android:title="@string/theme_default" android:checked="true" android:showAsAction="never"></item>
+        <item android:id="@+id/theme_tubes" android:checkable="true" android:title="@string/theme_tubes" android:showAsAction="never"></item>
+        <item android:id="@+id/theme_osmarender" android:checkable="true" android:title="@string/theme_osmarender" android:showAsAction="never"></item>
+    </group>
+  
+
+</menu>
diff --git a/vtm-android-example/res/values/strings.xml b/vtm-android-example/res/values/strings.xml
index 82ce024a..8e666a04 100644
--- a/vtm-android-example/res/values/strings.xml
+++ b/vtm-android-example/res/values/strings.xml
@@ -4,5 +4,8 @@
     <string name="hello_world">Hello world!</string>
     <string name="menu_settings">Settings</string>
     <string name="title_activity_map">MapActivity</string>
+    <string name="theme_default">Default</string>
+    <string name="theme_tubes">Tubes</string>
+    <string name="theme_osmarender">Osmarender</string>
 
 </resources>
\ No newline at end of file
diff --git a/vtm-android-example/src/org/oscim/android/test/SimpleMapActivity.java b/vtm-android-example/src/org/oscim/android/test/SimpleMapActivity.java
index 0f6aeacf..c9091e18 100644
--- a/vtm-android-example/src/org/oscim/android/test/SimpleMapActivity.java
+++ b/vtm-android-example/src/org/oscim/android/test/SimpleMapActivity.java
@@ -15,11 +15,12 @@
  * this program. If not, see <http://www.gnu.org/licenses/>.
  */package org.oscim.android.test;
 
-import org.oscim.layers.tile.vector.BuildingLayer;
 import org.oscim.layers.tile.vector.labeling.LabelLayer;
 import org.oscim.theme.InternalRenderTheme;
 
 import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
 
 public class SimpleMapActivity extends BaseMapActivity {
 
@@ -27,7 +28,8 @@ public class SimpleMapActivity extends BaseMapActivity {
 	public void onCreate(Bundle savedInstanceState) {
 		super.onCreate(savedInstanceState);
 
-		mMap.getLayers().add(new BuildingLayer(mMap, mBaseLayer.getTileLayer()));
+		//mMap.getLayers().add(new BuildingLayer(mMap, mBaseLayer.getTileLayer()));
+
 		mMap.getLayers().add(new LabelLayer(mMap, mBaseLayer.getTileLayer()));
 
 		//mMap.getLayers().add(new GenericLayer(mMap, new GridRenderer()));
@@ -37,5 +39,55 @@ public class SimpleMapActivity extends BaseMapActivity {
 		//mMap.setTheme(InternalRenderTheme.OSMARENDER);
 
 		mMap.setMapPosition(53.08, 8.83, Math.pow(2, 14));
+
+		//loooop(0);
+	}
+
+	void loooop(final int i) {
+		mMapView.postDelayed(new Runnable() {
+			@Override
+			public void run() {
+				InternalRenderTheme t;
+				if (i == 0)
+					t = InternalRenderTheme.DEFAULT;
+				else if (i == 1)
+					t = InternalRenderTheme.TRONRENDER;
+				else
+					t = InternalRenderTheme.OSMARENDER;
+
+				mMapView.getMap().setTheme(t);
+
+				loooop((i + 1) % 3);
+			}
+		}, 300 + (int)(Math.random() * 200));
+	}
+
+	@Override
+	public boolean onCreateOptionsMenu(Menu menu) {
+		getMenuInflater().inflate(R.menu.theme_menu, menu);
+		return true;
+	}
+
+	@Override
+	public boolean onMenuItemSelected(int featureId, MenuItem item) {
+
+		switch (item.getItemId()) {
+			case R.id.theme_default:
+				mMap.setTheme(InternalRenderTheme.DEFAULT);
+				item.setChecked(true);
+				return true;
+
+			case R.id.theme_tubes:
+				mMap.setTheme(InternalRenderTheme.TRONRENDER);
+				item.setChecked(true);
+				return true;
+
+			case R.id.theme_osmarender:
+				mMap.setTheme(InternalRenderTheme.OSMARENDER);
+				item.setChecked(true);
+				return true;
+		}
+
+		return false;
 	}
 }