Merge "Show dynamic skin if enabled in AVD settings"
diff --git a/android/avd/info.c b/android/avd/info.c
index 3463f6a..0f43de6 100644
--- a/android/avd/info.c
+++ b/android/avd/info.c
@@ -84,6 +84,9 @@
  */
 #define  SKIN_NAME       "skin.name"
 
+/* the config.ini key that specifies if this AVD should use a dynamic skin */
+#define  SKIN_DYNAMIC    "skin.dynamic"
+
 /* default skin name */
 #define  SKIN_DEFAULT    "HVGA"
 
@@ -1197,6 +1200,14 @@
     return;
 }
 
+int
+avdInfo_shouldUseDynamicSkin( AvdInfo* i)
+{
+    if (i == NULL || i->configIni == NULL)
+        return 0;
+    return iniFile_getBoolean( i->configIni, SKIN_DYNAMIC, "no" );
+}
+
 char*
 avdInfo_getCharmapFile( AvdInfo* i, const char* charmapName )
 {
diff --git a/android/avd/info.h b/android/avd/info.h
index 4388b7c..556ba8e 100644
--- a/android/avd/info.h
+++ b/android/avd/info.h
@@ -218,6 +218,9 @@
  */
 void         avdInfo_getSkinInfo( AvdInfo*  i, char** pSkinName, char** pSkinDir );
 
+/* Returns whether the AVD specifies the use of a dynamic skin */
+int          avdInfo_shouldUseDynamicSkin( AvdInfo* i);
+
 /* Find a charmap file named <charmapName>.kcm for this AVD.
  * Returns the path of the file on success, or NULL if not found.
  * The result string must be freed by the caller.
diff --git a/android/main.c b/android/main.c
index 4178a6b..f980d27 100644
--- a/android/main.c
+++ b/android/main.c
@@ -324,6 +324,10 @@
         avdInfo_getSkinHardwareIni(avd, opts->skin, opts->skindir);
     }
 
+    if (opts->dynamic_skin == 0) {
+        opts->dynamic_skin = avdInfo_shouldUseDynamicSkin(avd);
+    }
+
     /* Read hardware configuration */
     hw = android_hw;
     if (avdInfo_initHwConfig(avd, hw) < 0) {