Move generateUpdatableBcpPackagesRule to platform_bootclasspath

Changes generateUpdatableBcpPackagesRule to use ModuleContext instead
of SingletonContext and moves the call from dexpreoptBootJar's
GenerateSingletonBuildActions method to platform_bootclasspath's
GenerateAndroidBuildActions.

Bug: 177892522
Test: lunch art_module_arm64
      m out/soong/module_arm64/dex_bootjars/updatable-bcp-packages.txt
      - make sure it is not affected by this change
Change-Id: I9741ae1eb9573cafe12dd7a17dc1d8449b224dc8
diff --git a/java/dexpreopt_bootjars.go b/java/dexpreopt_bootjars.go
index 8a6f3d1..be14be4 100644
--- a/java/dexpreopt_bootjars.go
+++ b/java/dexpreopt_bootjars.go
@@ -431,9 +431,6 @@
 	defaultImageConfig := defaultBootImageConfig(ctx)
 	profile := bootImageProfileRule(ctx, defaultImageConfig)
 
-	// Generate the updatable bootclasspath packages rule.
-	updatableBcpPackagesRule(ctx, defaultImageConfig)
-
 	// Create the default boot image.
 	d.defaultBootImage = buildBootImage(ctx, defaultImageConfig, profile)
 
@@ -887,32 +884,9 @@
 	return profile
 }
 
-func updatableBcpPackagesRule(ctx android.SingletonContext, image *bootImageConfig) android.WritablePath {
-	if ctx.Config().UnbundledBuild() {
-		return nil
-	}
-
-	global := dexpreopt.GetGlobalConfig(ctx)
-	var modules []android.Module
-	updatableModules := global.UpdatableBootJars.CopyOfJars()
-	ctx.VisitAllModules(func(module android.Module) {
-		if !isActiveModule(module) {
-			return
-		}
-		name := ctx.ModuleName(module)
-		if i := android.IndexList(name, updatableModules); i != -1 {
-			modules = append(modules, module)
-			// Do not match the same library repeatedly.
-			updatableModules = append(updatableModules[:i], updatableModules[i+1:]...)
-		}
-	})
-
-	return generateUpdatableBcpPackagesRule(ctx, image, modules)
-}
-
 // generateUpdatableBcpPackagesRule generates the rule to create the updatable-bcp-packages.txt file
 // and returns a path to the generated file.
-func generateUpdatableBcpPackagesRule(ctx android.SingletonContext, image *bootImageConfig, updatableModules []android.Module) android.WritablePath {
+func generateUpdatableBcpPackagesRule(ctx android.ModuleContext, image *bootImageConfig, updatableModules []android.Module) android.WritablePath {
 	// Collect `permitted_packages` for updatable boot jars.
 	var updatablePackages []string
 	for _, module := range updatableModules {
@@ -921,7 +895,7 @@
 			if len(pp) > 0 {
 				updatablePackages = append(updatablePackages, pp...)
 			} else {
-				ctx.Errorf("Missing permitted_packages for %s", ctx.ModuleName(module))
+				ctx.ModuleErrorf("Missing permitted_packages")
 			}
 		}
 	}