yayan před 6 měsíci
rodič
revize
44bf2162ca

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
 
     <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Dmplugin" tools:replace="android:allowBackup, android:fullBackupContent, android:dataExtractionRules, android:supportsRtl" tools:targetApi="31">
-        <activity android:exported="true" android:name="io.nexilis.app.NexilisActivity">
+        <activity android:exported="true" android:name=".MainActivity">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
 

+ 4 - 12
dm-plugin/src/main/java/io/nexilis/DynamicModulePlugin.kt

@@ -16,7 +16,6 @@ const val libNameSpace = "com.example.dm"
 
 class DynamicModulePlugin : Plugin<Project> {
     var mainProjectName: String = ""
-    var oldJavaSrcDirs:Set<File> = emptySet()
     override fun apply(target: Project) {
         target.gradle.addProjectEvaluationListener(object : ProjectEvaluationListener {
             override fun beforeEvaluate(project: Project) {
@@ -30,10 +29,8 @@ class DynamicModulePlugin : Plugin<Project> {
                     val android = project.extensions.getByType(BaseAppModuleExtension::class.java)
                     android.sourceSets.maybeCreate("main")
                     android.sourceSets.getByName("main") { sourceSet ->
+                        sourceSet.java.setSrcDirs(sourceSet.java.srcDirs.plus("src/custom/java"))
                         println(">>>>>>>>>>> java:srcDirs:${sourceSet.java.srcDirs}")
-                        oldJavaSrcDirs = sourceSet.java.srcDirs
-                        sourceSet.java.setSrcDirs(listOf("src/custom/java"))
-                        println(">>>>>>>>>>> java:setSrcDirs:${project.projectDir}")
                     }
                     android.dynamicFeatures.add(":dynamic_core")
                     println(">>>>>>>>>>> dynamicFeature:add:dynamic_core")
@@ -77,14 +74,9 @@ class DynamicModulePlugin : Plugin<Project> {
             }
 
             override fun buildFinished(result: BuildResult) {
-                target.project(":$mainProjectName") {
-                    println(">>>>>>>>>>> project:${it.name}")
-                    val android = it.extensions.getByType(BaseAppModuleExtension::class.java)
-                    android.sourceSets.getByName("main") { sourceSet ->
-                        sourceSet.java.setSrcDirs(oldJavaSrcDirs)
-                        println(">>>>>>>>>>> java:setSrcDirs:${sourceSet.java.srcDirs}")
-                    }
-                    val tmpBaseDir = File(it.projectDir, "src/custom")
+                target.project(":$mainProjectName") { project ->
+                    println(">>>>>>>>>>> project:${project.name}")
+                    val tmpBaseDir = File(project.projectDir, "src/custom")
                     println(">>>>>>>>>>> delete:dir:${tmpBaseDir.toPath()}")
                     if (tmpBaseDir.exists()) {
                         tmpBaseDir.deleteRecursively()

+ 12 - 0
dm-set-plugin/src/main/java/io/nexilis/SettingsPlugin.kt

@@ -30,6 +30,8 @@ import kotlin.io.path.name
 import kotlin.io.path.nameWithoutExtension
 
 const val libNameSpace = "com.example.dm"
+var androidManifestPath: Path? = null
+var oldMainActivity: String = ""
 
 class SettingsPlugin: Plugin<Settings> {
     override fun apply(target: Settings) {
@@ -83,6 +85,14 @@ class SettingsPlugin: Plugin<Settings> {
                     moduleDir.deleteRecursively()
                     println(">>>>>>>>>>> delete:dir:${moduleDir.toPath()}")
                 }
+                androidManifestPath?.let {
+                    try {
+                        val activity = it.replaceMainActivity(oldMainActivity)
+                        Files.writeString(it, activity)
+                        println(">>>>>>>>>>> revert:mainActivity:${it}")
+                    } catch (_: Exception) {
+                    }
+                }
             }
 
         })
@@ -164,6 +174,7 @@ fun Path.copy(target: Path) {
                 Files.writeString(targetPath, updatedContent)
             }
             if (file.fileName.name == "AndroidManifest.xml") {
+                androidManifestPath = file
                 try {
                     val activity = file.replaceMainActivity("io.nexilis.app.NexilisActivity")
                     Files.writeString(file, activity)
@@ -224,6 +235,7 @@ fun Document.replace(string: String): Document {
             for (k in 0..<action.length) {
                 val element2 = action.item(k) as Element
                 if (element2.getAttribute("android:name") == "android.intent.action.MAIN") {
+                    oldMainActivity = element.getAttribute("android:name")
                     element.setAttribute("android:name", string)
                     break@p
                 }