Merge "Disable() must not be enabled unexpectedly" am: 6aed6a385e am: f6b2c3297c am: 4ef2969daf am: f9614fc351 am: 1aed9f2ed7

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1382317

Change-Id: I1599af4cc889e8f105cfe5225f837b0fa2690cd8
diff --git a/android/module.go b/android/module.go
index 634538f..f6abf11 100644
--- a/android/module.go
+++ b/android/module.go
@@ -549,6 +549,9 @@
 
 	SkipInstall bool `blueprint:"mutated"`
 
+	// Disabled by mutators. If set to true, it overrides Enabled property.
+	ForcedDisabled bool `blueprint:"mutated"`
+
 	NamespaceExportedToMake bool `blueprint:"mutated"`
 
 	MissingDeps []string `blueprint:"mutated"`
@@ -1023,6 +1026,9 @@
 }
 
 func (m *ModuleBase) Enabled() bool {
+	if m.commonProperties.ForcedDisabled {
+		return false
+	}
 	if m.commonProperties.Enabled == nil {
 		return !m.Os().DefaultDisabled
 	}
@@ -1030,7 +1036,7 @@
 }
 
 func (m *ModuleBase) Disable() {
-	m.commonProperties.Enabled = proptools.BoolPtr(false)
+	m.commonProperties.ForcedDisabled = true
 }
 
 func (m *ModuleBase) SkipInstall() {