Merge "Disable() must not be enabled unexpectedly" am: 6aed6a385e am: f6b2c3297c

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

Change-Id: Ia6d49cfd043cefe5016900c5c8f1c562267e605c
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() {