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) {