diff --git a/3rdparty/android/android_native_app_glue_impl.d b/3rdparty/android/android_native_app_glue_impl.d
index d9fd4b11..b142ebd7 100644
--- a/3rdparty/android/android_native_app_glue_impl.d
+++ b/3rdparty/android/android_native_app_glue_impl.d
@@ -253,9 +253,9 @@ void* android_app_entry(void* param) {
 
 static android_app* android_app_create(ANativeActivity* activity,
         void* savedState, size_t savedStateSize) {
-	size_t sz = android_app.sizeof;
-	android_app* android_app = cast(android_app*)malloc(sz);
-	memset(android_app, 0, sz);
+    size_t sz = android_app.sizeof;
+    android_app* android_app = cast(android_app*)malloc(sz);
+    memset(android_app, 0, sz);
     android_app.activity = activity;
 
     pthread_mutex_init(&android_app.mutex, null);
diff --git a/examples/android/jni/app.d b/examples/android/jni/app.d
index d6a15fa9..7b9d28f7 100644
--- a/examples/android/jni/app.d
+++ b/examples/android/jni/app.d
@@ -40,10 +40,12 @@ extern (C) int UIAppMain(string[] args) {
 						RadioButton { id: rb2; text: "Item 2" }
 						RadioButton { id: rb3; text: "Item 3" }
 					}
+					TextWidget { text: "Switch:" }
+					SwitchWidget { checked: true }
 					TextWidget { text: "and checkboxes" }
 					// arrange some checkboxes horizontally
 					HorizontalLayout {
-					layoutWidth: fill
+						layoutWidth: fill
 						CheckBox { id: cb1; text: "checkbox 1" }
 						CheckBox { id: cb2; text: "checkbox 2" }
 					}
diff --git a/src/dlangui/platforms/android/androidapp.d b/src/dlangui/platforms/android/androidapp.d
index 036f79bb..3ff4d86a 100644
--- a/src/dlangui/platforms/android/androidapp.d
+++ b/src/dlangui/platforms/android/androidapp.d
@@ -106,6 +106,10 @@ class AndroidPlatform : Platform {
 	}
 
 	~this() {
+		foreach_reverse(w; _windows) {
+			destroy(w);
+		}
+		_windows.length = 0;
 		termDisplay();
 	}
 
@@ -268,9 +272,11 @@ class AndroidPlatform : Platform {
 				break;
 			case APP_CMD_WINDOW_REDRAW_NEEDED:
 				Log.d("APP_CMD_WINDOW_REDRAW_NEEDED");
+				drawWindow();
 				break;
 			case APP_CMD_CONTENT_RECT_CHANGED:
 				Log.d("APP_CMD_CONTENT_RECT_CHANGED");
+				drawWindow();
 				break;
 			case APP_CMD_CONFIG_CHANGED:
 				Log.d("APP_CMD_CONFIG_CHANGED");
@@ -524,12 +530,15 @@ extern (C) void android_main(android_app* state) {
     }
     initResourceManagers();
 	SCREEN_DPI = getDensityDpi(state);
+	Log.i("SCREEN_DPI=", SCREEN_DPI);
+
+    //currentTheme = createDefaultTheme();
 
-    currentTheme = createDefaultTheme();
 
 	_platform = new AndroidPlatform(state);
 	Platform.setInstance(_platform);
 
+	_platform.uiTheme = "theme_default";
 
     // Make sure glue isn't stripped.
     app_dummy();
diff --git a/views/res/theme_default.xml b/views/res/theme_default.xml
index 3327410f..927d384a 100644
--- a/views/res/theme_default.xml
+++ b/views/res/theme_default.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <theme id="theme_default" 
         fontSize="10pt" 
-        fontFace="Helvetica Neue,Verdana,Arial,DejaVu Sans,Liberation Sans,Helvetica"
+        fontFace="Helvetica Neue,Verdana,Arial,DejaVu Sans,Liberation Sans,Helvetica,Roboto,Droid Sans"
         fontFamily="SansSerif"
-	>
+        >
     <color id="window_background" value="#FFFFFF"/>
     <color id="dialog_background" value="#EEEEEE"/>
     <color id="edit_background" value="#FFFFFF"/>