You can use gradle to have BuildConfig
constants and res
values on a per flavor basis. Just add the value to the flavor you want to support.
android {
defaultConfig {
resValue "string", "app_name", "Full App"
buildConfigField "boolean", "isDemo", "false"
}
productFlavors {
demo {
resValue "String", "app_name", "Demo App"
buildConfigField "boolean", "isDemo", "true"
}
full {
// use default values
}
}
}
Gradle will do all the merging / overriding for you. The generated code will also allow you to see where the values come from, e.g.
<!-- Values from default config. -->
<string name="app_name" translatable="false">Default Name</string>
and
public final class BuildConfig {
public static final String VERSION_NAME = "1.0";
// Fields from product flavor: demo
public static final boolean isDemo = true;
}