diff --git a/.idea/other.xml b/.idea/other.xml
new file mode 100644
index 000000000..0d3a1fbb1
--- /dev/null
+++ b/.idea/other.xml
@@ -0,0 +1,263 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/app/src/main/java/com/itsaky/androidide/actions/build/QuickRunWithCancellationAction.kt b/core/app/src/main/java/com/itsaky/androidide/actions/build/QuickRunWithCancellationAction.kt
index 437a05bfc..38b168571 100644
--- a/core/app/src/main/java/com/itsaky/androidide/actions/build/QuickRunWithCancellationAction.kt
+++ b/core/app/src/main/java/com/itsaky/androidide/actions/build/QuickRunWithCancellationAction.kt
@@ -30,7 +30,7 @@ import com.itsaky.androidide.actions.markInvisible
import com.itsaky.androidide.actions.openApplicationModuleChooser
import com.itsaky.androidide.lookup.Lookup
import com.itsaky.androidide.models.ApkMetadata
-import com.itsaky.androidide.projects.api.AndroidModule
+import com.itsaky.androidide.projects.android.AndroidModule
import com.itsaky.androidide.projects.builder.BuildService
import com.itsaky.androidide.resources.R
import com.itsaky.androidide.tooling.api.messages.result.TaskExecutionResult
diff --git a/core/app/src/main/java/com/itsaky/androidide/actions/internalActionUtils.kt b/core/app/src/main/java/com/itsaky/androidide/actions/internalActionUtils.kt
index ff7b40ee4..635ef56b8 100644
--- a/core/app/src/main/java/com/itsaky/androidide/actions/internalActionUtils.kt
+++ b/core/app/src/main/java/com/itsaky/androidide/actions/internalActionUtils.kt
@@ -20,7 +20,7 @@ package com.itsaky.androidide.actions
import android.content.Context
import com.itsaky.androidide.R
import com.itsaky.androidide.projects.IProjectManager
-import com.itsaky.androidide.projects.api.AndroidModule
+import com.itsaky.androidide.projects.android.AndroidModule
import com.itsaky.androidide.utils.DialogUtils
import com.itsaky.androidide.utils.ILogger
import com.itsaky.androidide.utils.flashError
diff --git a/core/app/src/main/java/com/itsaky/androidide/activities/editor/ProjectHandlerActivity.kt b/core/app/src/main/java/com/itsaky/androidide/activities/editor/ProjectHandlerActivity.kt
index 10c82e608..f60c1eba5 100644
--- a/core/app/src/main/java/com/itsaky/androidide/activities/editor/ProjectHandlerActivity.kt
+++ b/core/app/src/main/java/com/itsaky/androidide/activities/editor/ProjectHandlerActivity.kt
@@ -40,7 +40,7 @@ import com.itsaky.androidide.lsp.IDELanguageClientImpl
import com.itsaky.androidide.lsp.java.utils.CancelChecker
import com.itsaky.androidide.preferences.internal.GeneralPreferences
import com.itsaky.androidide.projects.internal.ProjectManagerImpl
-import com.itsaky.androidide.projects.api.GradleProject
+import com.itsaky.androidide.projects.GradleProject
import com.itsaky.androidide.projects.builder.BuildService
import com.itsaky.androidide.services.builder.GradleBuildService
import com.itsaky.androidide.services.builder.GradleBuildServiceConnnection
diff --git a/core/app/src/main/java/com/itsaky/androidide/fragments/RunTasksDialogFragment.kt b/core/app/src/main/java/com/itsaky/androidide/fragments/RunTasksDialogFragment.kt
index 26fa094c8..4b8e0f588 100644
--- a/core/app/src/main/java/com/itsaky/androidide/fragments/RunTasksDialogFragment.kt
+++ b/core/app/src/main/java/com/itsaky/androidide/fragments/RunTasksDialogFragment.kt
@@ -18,7 +18,6 @@
package com.itsaky.androidide.fragments
import android.app.Dialog
-import android.graphics.Color
import android.os.Build
import android.os.Bundle
import android.text.Editable
@@ -27,7 +26,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.ViewGroup.MarginLayoutParams
-import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat.Type.navigationBars
import androidx.core.view.WindowInsetsCompat.Type.statusBars
import androidx.core.view.updateLayoutParams
@@ -46,7 +44,7 @@ import com.itsaky.androidide.databinding.LayoutRunTaskDialogBinding
import com.itsaky.androidide.lookup.Lookup
import com.itsaky.androidide.models.Checkable
import com.itsaky.androidide.projects.IProjectManager
-import com.itsaky.androidide.projects.api.GradleProject
+import com.itsaky.androidide.projects.GradleProject
import com.itsaky.androidide.projects.builder.BuildService
import com.itsaky.androidide.resources.R
import com.itsaky.androidide.tasks.executeAsync
@@ -55,7 +53,6 @@ import com.itsaky.androidide.utils.SingleTextWatcher
import com.itsaky.androidide.utils.doOnApplyWindowInsets
import com.itsaky.androidide.utils.flashError
import com.itsaky.androidide.utils.flashInfo
-import com.itsaky.androidide.utils.updateSystemBarColors
import com.itsaky.androidide.viewmodel.RunTasksViewModel
import org.slf4j.LoggerFactory
diff --git a/core/app/src/main/java/com/itsaky/androidide/indexing/platform/PlatformIndexService.kt b/core/app/src/main/java/com/itsaky/androidide/indexing/platform/PlatformIndexService.kt
index b1f9bb9c1..470facd11 100644
--- a/core/app/src/main/java/com/itsaky/androidide/indexing/platform/PlatformIndexService.kt
+++ b/core/app/src/main/java/com/itsaky/androidide/indexing/platform/PlatformIndexService.kt
@@ -19,7 +19,7 @@ package com.itsaky.androidide.indexing.platform
import com.google.auto.service.AutoService
import com.itsaky.androidide.indexing.IIndexService
-import com.itsaky.androidide.projects.api.Project
+import com.itsaky.androidide.projects.Project
import org.slf4j.LoggerFactory
import java.io.File
diff --git a/core/indexing-api/src/main/java/com/itsaky/androidide/indexing/IIndexService.kt b/core/indexing-api/src/main/java/com/itsaky/androidide/indexing/IIndexService.kt
index 05d51667f..dfe51abf0 100644
--- a/core/indexing-api/src/main/java/com/itsaky/androidide/indexing/IIndexService.kt
+++ b/core/indexing-api/src/main/java/com/itsaky/androidide/indexing/IIndexService.kt
@@ -17,7 +17,7 @@
package com.itsaky.androidide.indexing
-import com.itsaky.androidide.projects.api.Project
+import com.itsaky.androidide.projects.Project
import kotlinx.coroutines.Deferred
import java.io.File
diff --git a/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/api/DefaultLanguageServerRegistry.java b/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/api/DefaultLanguageServerRegistry.java
index 86dd50e64..b2d692862 100644
--- a/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/api/DefaultLanguageServerRegistry.java
+++ b/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/api/DefaultLanguageServerRegistry.java
@@ -20,7 +20,7 @@ package com.itsaky.androidide.lsp.api;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.itsaky.androidide.eventbus.events.project.ProjectInitializedEvent;
-import com.itsaky.androidide.projects.api.Project;
+import com.itsaky.androidide.projects.Project;
import com.itsaky.androidide.utils.ILogger;
import java.util.HashMap;
import java.util.Map;
diff --git a/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/api/ILanguageServer.kt b/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/api/ILanguageServer.kt
index b428e9e37..17da5262c 100644
--- a/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/api/ILanguageServer.kt
+++ b/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/api/ILanguageServer.kt
@@ -46,7 +46,7 @@ import com.itsaky.androidide.lsp.models.ReferenceResult
import com.itsaky.androidide.lsp.models.SignatureHelp
import com.itsaky.androidide.lsp.models.SignatureHelpParams
import com.itsaky.androidide.models.Range
-import com.itsaky.androidide.projects.api.Project
+import com.itsaky.androidide.projects.Project
import java.nio.file.Path
/**
diff --git a/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/util/commonCompletionUtils.kt b/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/util/commonCompletionUtils.kt
index fc18c3ab0..10e67af69 100644
--- a/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/util/commonCompletionUtils.kt
+++ b/core/lsp-api/src/main/java/com/itsaky/androidide/lsp/util/commonCompletionUtils.kt
@@ -19,8 +19,8 @@ package com.itsaky.androidide.lsp.util
import com.itsaky.androidide.lookup.Lookup
import com.itsaky.androidide.projects.IProjectManager
-import com.itsaky.androidide.projects.api.AndroidModule
-import com.itsaky.androidide.projects.api.ModuleProject
+import com.itsaky.androidide.projects.android.AndroidModule
+import com.itsaky.androidide.projects.ModuleProject
import com.itsaky.androidide.xml.resources.ResourceTableRegistry
import com.itsaky.androidide.xml.versions.ApiVersions
import com.itsaky.androidide.xml.widgets.WidgetTable
diff --git a/core/projects/src/main/java/com/itsaky/androidide/projects/api/GradleProject.kt b/core/projects/src/main/java/com/itsaky/androidide/projects/GradleProject.kt
similarity index 95%
rename from core/projects/src/main/java/com/itsaky/androidide/projects/api/GradleProject.kt
rename to core/projects/src/main/java/com/itsaky/androidide/projects/GradleProject.kt
index 8778c6889..c5cf89ae1 100644
--- a/core/projects/src/main/java/com/itsaky/androidide/projects/api/GradleProject.kt
+++ b/core/projects/src/main/java/com/itsaky/androidide/projects/GradleProject.kt
@@ -15,7 +15,7 @@
* along with AndroidIDE. If not, see .
*/
-package com.itsaky.androidide.projects.api
+package com.itsaky.androidide.projects
import com.itsaky.androidide.tooling.api.ProjectType
import com.itsaky.androidide.tooling.api.models.GradleTask
@@ -34,7 +34,6 @@ import java.util.concurrent.CompletableFuture
* @param buildDir The build directory of the project.
* @param buildScript The Gradle buildscript file of the project.
* @param tasks The tasks of the project.
- * @param subModules The submodules of the project.
* @author Akash Yadav
*/
open class GradleProject(
diff --git a/core/projects/src/main/java/com/itsaky/androidide/projects/IProjectManager.kt b/core/projects/src/main/java/com/itsaky/androidide/projects/IProjectManager.kt
index 98f8aaf4d..5bff16b4b 100644
--- a/core/projects/src/main/java/com/itsaky/androidide/projects/IProjectManager.kt
+++ b/core/projects/src/main/java/com/itsaky/androidide/projects/IProjectManager.kt
@@ -20,9 +20,7 @@ package com.itsaky.androidide.projects
import androidx.annotation.RestrictTo
import com.android.builder.model.v2.models.ProjectSyncIssues
import com.itsaky.androidide.lookup.Lookup
-import com.itsaky.androidide.projects.api.AndroidModule
-import com.itsaky.androidide.projects.api.ModuleProject
-import com.itsaky.androidide.projects.api.Project
+import com.itsaky.androidide.projects.android.AndroidModule
import com.itsaky.androidide.projects.builder.BuildService
import com.itsaky.androidide.tooling.api.IProject
import com.itsaky.androidide.tooling.api.models.BuildVariantInfo
diff --git a/core/projects/src/main/java/com/itsaky/androidide/projects/api/ModuleProject.kt b/core/projects/src/main/java/com/itsaky/androidide/projects/ModuleProject.kt
similarity index 98%
rename from core/projects/src/main/java/com/itsaky/androidide/projects/api/ModuleProject.kt
rename to core/projects/src/main/java/com/itsaky/androidide/projects/ModuleProject.kt
index 5b12e0a89..b980dd815 100644
--- a/core/projects/src/main/java/com/itsaky/androidide/projects/api/ModuleProject.kt
+++ b/core/projects/src/main/java/com/itsaky/androidide/projects/ModuleProject.kt
@@ -15,13 +15,14 @@
* along with AndroidIDE. If not, see .
*/
-package com.itsaky.androidide.projects.api
+package com.itsaky.androidide.projects
import android.text.TextUtils
import androidx.annotation.RestrictTo
import com.itsaky.androidide.builder.model.IJavaCompilerSettings
import com.itsaky.androidide.javac.services.fs.CacheFSInfoSingleton
import com.itsaky.androidide.lookup.Lookup
+import com.itsaky.androidide.projects.android.AndroidModule
import com.itsaky.androidide.projects.classpath.JarFsClasspathReader
import com.itsaky.androidide.projects.util.BootClasspathProvider
import com.itsaky.androidide.tooling.api.models.GradleTask
diff --git a/core/projects/src/main/java/com/itsaky/androidide/projects/api/Project.kt b/core/projects/src/main/java/com/itsaky/androidide/projects/Project.kt
similarity index 97%
rename from core/projects/src/main/java/com/itsaky/androidide/projects/api/Project.kt
rename to core/projects/src/main/java/com/itsaky/androidide/projects/Project.kt
index a70a1abfe..f66b5376b 100644
--- a/core/projects/src/main/java/com/itsaky/androidide/projects/api/Project.kt
+++ b/core/projects/src/main/java/com/itsaky/androidide/projects/Project.kt
@@ -15,10 +15,11 @@
* along with AndroidIDE. If not, see .
*/
-package com.itsaky.androidide.projects.api
+package com.itsaky.androidide.projects
import com.android.builder.model.v2.ide.ProjectType
import com.android.builder.model.v2.models.ProjectSyncIssues
+import com.itsaky.androidide.projects.android.AndroidModule
import java.io.File
import java.nio.file.Path
diff --git a/core/projects/src/main/java/com/itsaky/androidide/projects/api/AndroidModule.kt b/core/projects/src/main/java/com/itsaky/androidide/projects/android/AndroidModule.kt
similarity index 99%
rename from core/projects/src/main/java/com/itsaky/androidide/projects/api/AndroidModule.kt
rename to core/projects/src/main/java/com/itsaky/androidide/projects/android/AndroidModule.kt
index 3494bd813..f4c31f296 100644
--- a/core/projects/src/main/java/com/itsaky/androidide/projects/api/AndroidModule.kt
+++ b/core/projects/src/main/java/com/itsaky/androidide/projects/android/AndroidModule.kt
@@ -15,7 +15,7 @@
* along with AndroidIDE. If not, see .
*/
-package com.itsaky.androidide.projects.api
+package com.itsaky.androidide.projects.android
import com.android.SdkConstants
import com.android.aaptcompiler.AaptResourceType
@@ -31,6 +31,8 @@ import com.itsaky.androidide.builder.model.DefaultSourceSetContainer
import com.itsaky.androidide.builder.model.DefaultViewBindingOptions
import com.itsaky.androidide.builder.model.UNKNOWN_PACKAGE
import com.itsaky.androidide.projects.IProjectManager
+import com.itsaky.androidide.projects.ModuleProject
+import com.itsaky.androidide.projects.Project
import com.itsaky.androidide.tooling.api.ProjectType.Android
import com.itsaky.androidide.tooling.api.models.BasicAndroidVariantMetadata
import com.itsaky.androidide.tooling.api.models.GradleTask
diff --git a/core/projects/src/main/java/com/itsaky/androidide/projects/internal/ProjectManagerImpl.kt b/core/projects/src/main/java/com/itsaky/androidide/projects/internal/ProjectManagerImpl.kt
index 9f70e0404..67cbc71ba 100644
--- a/core/projects/src/main/java/com/itsaky/androidide/projects/internal/ProjectManagerImpl.kt
+++ b/core/projects/src/main/java/com/itsaky/androidide/projects/internal/ProjectManagerImpl.kt
@@ -32,9 +32,9 @@ import com.itsaky.androidide.lookup.Lookup
import com.itsaky.androidide.projects.CachingProject
import com.itsaky.androidide.projects.IProjectManager
import com.itsaky.androidide.projects.R
-import com.itsaky.androidide.projects.api.AndroidModule
-import com.itsaky.androidide.projects.api.ModuleProject
-import com.itsaky.androidide.projects.api.Project
+import com.itsaky.androidide.projects.android.AndroidModule
+import com.itsaky.androidide.projects.ModuleProject
+import com.itsaky.androidide.projects.Project
import com.itsaky.androidide.projects.builder.BuildService
import com.itsaky.androidide.tasks.executeAsync
import com.itsaky.androidide.tooling.api.IAndroidProject
diff --git a/core/projects/src/main/java/com/itsaky/androidide/projects/internal/ProjectTransformer.kt b/core/projects/src/main/java/com/itsaky/androidide/projects/internal/ProjectTransformer.kt
index 04dea1b96..50c0ec62b 100644
--- a/core/projects/src/main/java/com/itsaky/androidide/projects/internal/ProjectTransformer.kt
+++ b/core/projects/src/main/java/com/itsaky/androidide/projects/internal/ProjectTransformer.kt
@@ -17,10 +17,10 @@
package com.itsaky.androidide.projects.internal
-import com.itsaky.androidide.projects.api.AndroidModule
-import com.itsaky.androidide.projects.api.GradleProject
-import com.itsaky.androidide.projects.api.JavaModule
-import com.itsaky.androidide.projects.api.Project
+import com.itsaky.androidide.projects.android.AndroidModule
+import com.itsaky.androidide.projects.GradleProject
+import com.itsaky.androidide.projects.java.JavaModule
+import com.itsaky.androidide.projects.Project
import com.itsaky.androidide.tooling.api.IAndroidProject
import com.itsaky.androidide.tooling.api.IGradleProject
import com.itsaky.androidide.tooling.api.IJavaProject
diff --git a/core/projects/src/main/java/com/itsaky/androidide/projects/api/JavaModule.kt b/core/projects/src/main/java/com/itsaky/androidide/projects/java/JavaModule.kt
similarity index 97%
rename from core/projects/src/main/java/com/itsaky/androidide/projects/api/JavaModule.kt
rename to core/projects/src/main/java/com/itsaky/androidide/projects/java/JavaModule.kt
index dab924af2..9c6576cda 100644
--- a/core/projects/src/main/java/com/itsaky/androidide/projects/api/JavaModule.kt
+++ b/core/projects/src/main/java/com/itsaky/androidide/projects/java/JavaModule.kt
@@ -15,10 +15,11 @@
* along with AndroidIDE. If not, see .
*/
-package com.itsaky.androidide.projects.api
+package com.itsaky.androidide.projects.java
import com.itsaky.androidide.builder.model.IJavaCompilerSettings
import com.itsaky.androidide.projects.IProjectManager
+import com.itsaky.androidide.projects.ModuleProject
import com.itsaky.androidide.tooling.api.ProjectType.Java
import com.itsaky.androidide.tooling.api.models.GradleTask
import com.itsaky.androidide.tooling.api.models.JavaContentRoot
diff --git a/core/projects/src/main/java/com/itsaky/androidide/projects/util/projects.kt b/core/projects/src/main/java/com/itsaky/androidide/projects/util/projects.kt
index 8101d1c4a..716f7a102 100644
--- a/core/projects/src/main/java/com/itsaky/androidide/projects/util/projects.kt
+++ b/core/projects/src/main/java/com/itsaky/androidide/projects/util/projects.kt
@@ -19,7 +19,7 @@ package com.itsaky.androidide.projects.util
import androidx.annotation.RestrictTo
import com.itsaky.androidide.projects.IProjectManager
-import com.itsaky.androidide.projects.api.AndroidModule
+import com.itsaky.androidide.projects.android.AndroidModule
/**
* **For testing purposes only!**
diff --git a/core/projects/src/test/java/com/itsaky/androidide/projects/api/ModuleProjectTest.kt b/core/projects/src/test/java/com/itsaky/androidide/projects/api/ModuleProjectTest.kt
index 442ed6783..46ce858f5 100644
--- a/core/projects/src/test/java/com/itsaky/androidide/projects/api/ModuleProjectTest.kt
+++ b/core/projects/src/test/java/com/itsaky/androidide/projects/api/ModuleProjectTest.kt
@@ -19,7 +19,9 @@ package com.itsaky.androidide.projects.api
import com.google.common.truth.Truth.assertThat
import com.itsaky.androidide.lookup.Lookup
+import com.itsaky.androidide.projects.android.AndroidModule
import com.itsaky.androidide.projects.IProjectManager
+import com.itsaky.androidide.projects.java.JavaModule
import com.itsaky.androidide.projects.builder.BuildService
import com.itsaky.androidide.testing.tooling.ToolingApiTestLauncher
import com.itsaky.androidide.tooling.api.IAndroidProject
diff --git a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/JavaCompilerProvider.java b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/JavaCompilerProvider.java
index 6a297295c..3210bec5f 100644
--- a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/JavaCompilerProvider.java
+++ b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/JavaCompilerProvider.java
@@ -19,7 +19,7 @@ package com.itsaky.androidide.lsp.java;
import androidx.annotation.NonNull;
import com.itsaky.androidide.lsp.java.compiler.JavaCompilerService;
-import com.itsaky.androidide.projects.api.ModuleProject;
+import com.itsaky.androidide.projects.ModuleProject;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
diff --git a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/JavaLanguageServer.kt b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/JavaLanguageServer.kt
index 9a5f32480..dca16c3d7 100644
--- a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/JavaLanguageServer.kt
+++ b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/JavaLanguageServer.kt
@@ -60,8 +60,8 @@ import com.itsaky.androidide.lsp.util.LSPEditorActions
import com.itsaky.androidide.models.Range
import com.itsaky.androidide.projects.FileManager.getActiveDocumentCount
import com.itsaky.androidide.projects.IProjectManager.Companion.getInstance
-import com.itsaky.androidide.projects.api.ModuleProject
-import com.itsaky.androidide.projects.api.Project
+import com.itsaky.androidide.projects.ModuleProject
+import com.itsaky.androidide.projects.Project
import com.itsaky.androidide.utils.DocumentUtils
import com.itsaky.androidide.utils.VMUtils
import kotlinx.coroutines.CoroutineScope
diff --git a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/CompileBatch.java b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/CompileBatch.java
index 9723a405a..82fbd340e 100644
--- a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/CompileBatch.java
+++ b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/CompileBatch.java
@@ -32,7 +32,7 @@ import com.itsaky.androidide.javac.services.partial.DiagnosticListenerImpl;
import com.itsaky.androidide.lsp.java.models.CompilationRequest;
import com.itsaky.androidide.lsp.java.visitors.MethodRangeScanner;
import com.itsaky.androidide.models.Range;
-import com.itsaky.androidide.projects.api.ModuleProject;
+import com.itsaky.androidide.projects.ModuleProject;
import com.itsaky.androidide.projects.util.StringSearch;
import com.itsaky.androidide.tooling.api.ProjectType;
import com.itsaky.androidide.utils.ClassTrie;
diff --git a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/JavaCompilerService.java b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/JavaCompilerService.java
index f4e0202a1..b01dab2df 100644
--- a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/JavaCompilerService.java
+++ b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/JavaCompilerService.java
@@ -34,8 +34,8 @@ import com.itsaky.androidide.lsp.java.visitors.FindTypeDeclarations;
import com.itsaky.androidide.models.Position;
import com.itsaky.androidide.models.Range;
import com.itsaky.androidide.projects.FileManager;
-import com.itsaky.androidide.projects.api.AndroidModule;
-import com.itsaky.androidide.projects.api.ModuleProject;
+import com.itsaky.androidide.projects.android.AndroidModule;
+import com.itsaky.androidide.projects.ModuleProject;
import com.itsaky.androidide.projects.util.BootClasspathProvider;
import com.itsaky.androidide.projects.util.StringSearch;
import com.itsaky.androidide.utils.Cache;
diff --git a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/SourceFileManager.java b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/SourceFileManager.java
index 872820958..1024a2877 100644
--- a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/SourceFileManager.java
+++ b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/compiler/SourceFileManager.java
@@ -24,8 +24,8 @@ import androidx.annotation.NonNull;
import com.blankj.utilcode.util.CloseUtils;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
import com.itsaky.androidide.javac.services.fs.AndroidFsProviderImpl;
-import com.itsaky.androidide.projects.api.AndroidModule;
-import com.itsaky.androidide.projects.api.ModuleProject;
+import com.itsaky.androidide.projects.android.AndroidModule;
+import com.itsaky.androidide.projects.ModuleProject;
import com.itsaky.androidide.projects.util.StringSearch;
import com.itsaky.androidide.utils.ClassTrie;
import com.itsaky.androidide.utils.Environment;
diff --git a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/indexing/internal/JavaIndexServiceImpl.kt b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/indexing/internal/JavaIndexServiceImpl.kt
index 899b312d0..6050a5c37 100644
--- a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/indexing/internal/JavaIndexServiceImpl.kt
+++ b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/indexing/internal/JavaIndexServiceImpl.kt
@@ -19,7 +19,7 @@ package com.itsaky.androidide.lsp.java.indexing.internal
import com.google.auto.service.AutoService
import com.itsaky.androidide.indexing.IIndexService
-import com.itsaky.androidide.projects.api.Project
+import com.itsaky.androidide.projects.Project
import java.io.File
/**
diff --git a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/parser/Parser.java b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/parser/Parser.java
index 8a6ba9cc7..47d13c06e 100644
--- a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/parser/Parser.java
+++ b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/parser/Parser.java
@@ -22,7 +22,7 @@ import com.itsaky.androidide.lsp.java.compiler.SourceFileObject;
import com.itsaky.androidide.models.Position;
import com.itsaky.androidide.models.Range;
import com.itsaky.androidide.projects.IProjectManager;
-import com.itsaky.androidide.projects.api.ModuleProject;
+import com.itsaky.androidide.projects.ModuleProject;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
diff --git a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/providers/completion/ImportCompletionProvider.kt b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/providers/completion/ImportCompletionProvider.kt
index 5daa6d57d..e89da364e 100644
--- a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/providers/completion/ImportCompletionProvider.kt
+++ b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/providers/completion/ImportCompletionProvider.kt
@@ -26,7 +26,7 @@ import com.itsaky.androidide.lsp.models.CompletionResult
import com.itsaky.androidide.lsp.models.MatchLevel.CASE_SENSITIVE_EQUAL
import com.itsaky.androidide.lsp.models.MatchLevel.NO_MATCH
import com.itsaky.androidide.progress.ProgressManager.Companion.abortIfCancelled
-import com.itsaky.androidide.projects.api.ModuleProject
+import com.itsaky.androidide.projects.ModuleProject
import com.itsaky.androidide.projects.util.BootClasspathProvider
import com.itsaky.androidide.utils.ClassTrie
import com.itsaky.androidide.utils.ClassTrie.Node
diff --git a/java/lsp/src/test/java/com/itsaky/androidide/lsp/java/JavaCompilerProviderTest.kt b/java/lsp/src/test/java/com/itsaky/androidide/lsp/java/JavaCompilerProviderTest.kt
index fcd804eb1..45695ea64 100644
--- a/java/lsp/src/test/java/com/itsaky/androidide/lsp/java/JavaCompilerProviderTest.kt
+++ b/java/lsp/src/test/java/com/itsaky/androidide/lsp/java/JavaCompilerProviderTest.kt
@@ -20,7 +20,7 @@ package com.itsaky.androidide.lsp.java
import com.google.common.truth.Truth.assertThat
import com.itsaky.androidide.lsp.java.compiler.JavaCompilerService
import com.itsaky.androidide.projects.IProjectManager
-import com.itsaky.androidide.projects.api.ModuleProject
+import com.itsaky.androidide.projects.ModuleProject
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
diff --git a/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/ILayoutInflater.kt b/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/ILayoutInflater.kt
index 144dfbb7a..241e4eec3 100644
--- a/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/ILayoutInflater.kt
+++ b/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/ILayoutInflater.kt
@@ -21,7 +21,7 @@ import android.view.ViewGroup
import com.itsaky.androidide.inflater.events.IInflateEventsListener
import com.itsaky.androidide.inflater.internal.LayoutInflaterImpl
import com.itsaky.androidide.lookup.Lookup.Key
-import com.itsaky.androidide.projects.api.AndroidModule
+import com.itsaky.androidide.projects.android.AndroidModule
import java.io.Closeable
import java.io.File
diff --git a/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/LayoutInflaterImpl.kt b/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/LayoutInflaterImpl.kt
index 50a2d9269..2e8247027 100644
--- a/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/LayoutInflaterImpl.kt
+++ b/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/LayoutInflaterImpl.kt
@@ -50,7 +50,7 @@ import com.itsaky.androidide.inflater.utils.isParsing
import com.itsaky.androidide.inflater.utils.startParse
import com.itsaky.androidide.inflater.viewAdapter
import com.itsaky.androidide.lookup.Lookup
-import com.itsaky.androidide.projects.api.AndroidModule
+import com.itsaky.androidide.projects.android.AndroidModule
import com.itsaky.androidide.xml.widgets.Widget
import com.itsaky.androidide.xml.widgets.WidgetTable
import com.itsaky.androidide.xml.widgets.WidgetType
diff --git a/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/inflaterUtils.kt b/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/inflaterUtils.kt
index ed694edd0..2aff3167a 100644
--- a/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/inflaterUtils.kt
+++ b/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/inflaterUtils.kt
@@ -35,7 +35,7 @@ import com.itsaky.androidide.inflater.InflateException
import com.itsaky.androidide.inflater.internal.AttributeImpl
import com.itsaky.androidide.lookup.Lookup
import com.itsaky.androidide.projects.IProjectManager
-import com.itsaky.androidide.projects.api.AndroidModule
+import com.itsaky.androidide.projects.android.AndroidModule
import java.io.File
/** Get the [ILayoutInflater] registered with [Lookup]. */
diff --git a/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/module.kt b/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/module.kt
index 7546c215b..ba0c73cd5 100644
--- a/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/module.kt
+++ b/utilities/xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/module.kt
@@ -18,7 +18,7 @@
package com.itsaky.androidide.inflater.utils
import com.itsaky.androidide.projects.IProjectManager
-import com.itsaky.androidide.projects.api.AndroidModule
+import com.itsaky.androidide.projects.android.AndroidModule
import java.io.File
private var currentModule: AndroidModule? = null
diff --git a/utilities/xml-inflater/src/test/java/com/itsaky/androidide/inflater/LayoutInflaterTest.kt b/utilities/xml-inflater/src/test/java/com/itsaky/androidide/inflater/LayoutInflaterTest.kt
index 2044862a9..fee8058d7 100644
--- a/utilities/xml-inflater/src/test/java/com/itsaky/androidide/inflater/LayoutInflaterTest.kt
+++ b/utilities/xml-inflater/src/test/java/com/itsaky/androidide/inflater/LayoutInflaterTest.kt
@@ -29,7 +29,7 @@ import com.itsaky.androidide.inflater.internal.ViewGroupImpl
import com.itsaky.androidide.inflater.internal.ViewImpl
import com.itsaky.androidide.inflater.internal.utils.IDTable
import com.itsaky.androidide.inflater.utils.newAttribute
-import com.itsaky.androidide.projects.api.AndroidModule
+import com.itsaky.androidide.projects.android.AndroidModule
import com.itsaky.androidide.projects.util.findAppModule
import org.junit.Before
import org.junit.Test
diff --git a/utilities/xml-inflater/src/test/java/com/itsaky/androidide/inflater/XmlInflaterTest.kt b/utilities/xml-inflater/src/test/java/com/itsaky/androidide/inflater/XmlInflaterTest.kt
index f3fdd7342..c27dcd5ca 100644
--- a/utilities/xml-inflater/src/test/java/com/itsaky/androidide/inflater/XmlInflaterTest.kt
+++ b/utilities/xml-inflater/src/test/java/com/itsaky/androidide/inflater/XmlInflaterTest.kt
@@ -23,7 +23,7 @@ import com.itsaky.androidide.inflater.utils.endParse
import com.itsaky.androidide.inflater.utils.startParse
import com.itsaky.androidide.lookup.Lookup
import com.itsaky.androidide.projects.IProjectManager
-import com.itsaky.androidide.projects.api.AndroidModule
+import com.itsaky.androidide.projects.android.AndroidModule
import com.itsaky.androidide.projects.builder.BuildService
import com.itsaky.androidide.projects.util.findAppModule
import com.itsaky.androidide.testing.tooling.ToolingApiTestLauncher
diff --git a/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/XMLLanguageServer.kt b/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/XMLLanguageServer.kt
index 2a315d1e9..1b7106fd1 100644
--- a/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/XMLLanguageServer.kt
+++ b/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/XMLLanguageServer.kt
@@ -41,7 +41,7 @@ import com.itsaky.androidide.lsp.xml.providers.AdvancedEditProvider.onContentCha
import com.itsaky.androidide.lsp.xml.providers.CodeFormatProvider
import com.itsaky.androidide.lsp.xml.providers.XmlCompletionProvider
import com.itsaky.androidide.models.Range
-import com.itsaky.androidide.projects.api.Project
+import com.itsaky.androidide.projects.Project
import com.itsaky.androidide.utils.DocumentUtils
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
diff --git a/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/layout/QualifiedTagCompleter.kt b/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/layout/QualifiedTagCompleter.kt
index b6a9c8219..b465fe4ba 100644
--- a/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/layout/QualifiedTagCompleter.kt
+++ b/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/layout/QualifiedTagCompleter.kt
@@ -26,7 +26,7 @@ import com.itsaky.androidide.lsp.models.CompletionResult
import com.itsaky.androidide.lsp.models.MatchLevel.NO_MATCH
import com.itsaky.androidide.lsp.xml.providers.completion.match
import com.itsaky.androidide.lsp.xml.utils.XmlUtils.NodeType
-import com.itsaky.androidide.projects.api.ModuleProject
+import com.itsaky.androidide.projects.ModuleProject
import com.itsaky.androidide.utils.ClassTrie
import com.itsaky.androidide.xml.internal.widgets.DefaultWidgetTable
import com.itsaky.androidide.xml.widgets.WidgetTable
diff --git a/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/layout/SimpleTagCompleter.kt b/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/layout/SimpleTagCompleter.kt
index 8b03d222a..49f8055db 100644
--- a/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/layout/SimpleTagCompleter.kt
+++ b/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/layout/SimpleTagCompleter.kt
@@ -24,7 +24,7 @@ import com.itsaky.androidide.lsp.models.CompletionItem
import com.itsaky.androidide.lsp.models.CompletionParams
import com.itsaky.androidide.lsp.models.CompletionResult
import com.itsaky.androidide.lsp.xml.utils.XmlUtils.NodeType
-import com.itsaky.androidide.projects.api.ModuleProject
+import com.itsaky.androidide.projects.ModuleProject
import com.itsaky.androidide.utils.ClassTrie
import com.itsaky.androidide.xml.widgets.WidgetTable
import org.eclipse.lemminx.dom.DOMDocument
diff --git a/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/manifest/ManifestAttrValueCompletionProvider.kt b/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/manifest/ManifestAttrValueCompletionProvider.kt
index 971b26915..84b57b543 100644
--- a/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/manifest/ManifestAttrValueCompletionProvider.kt
+++ b/xml/lsp/src/main/java/com/itsaky/androidide/lsp/xml/providers/completion/manifest/ManifestAttrValueCompletionProvider.kt
@@ -41,8 +41,8 @@ import com.itsaky.androidide.lsp.xml.providers.completion.AttrValueCompletionPro
import com.itsaky.androidide.lsp.xml.providers.completion.manifestResourceTable
import com.itsaky.androidide.lsp.xml.providers.completion.match
import com.itsaky.androidide.lsp.xml.utils.XmlUtils.NodeType
-import com.itsaky.androidide.projects.api.AndroidModule
-import com.itsaky.androidide.projects.api.ModuleProject
+import com.itsaky.androidide.projects.android.AndroidModule
+import com.itsaky.androidide.projects.ModuleProject
import com.itsaky.androidide.xml.permissions.Permission
import com.itsaky.androidide.xml.resources.ResourceTableRegistry
import org.eclipse.lemminx.dom.DOMDocument
diff --git a/xml/lsp/src/test/java/com/itsaky/androidide/lsp/xml/XMLLSPTest.kt b/xml/lsp/src/test/java/com/itsaky/androidide/lsp/xml/XMLLSPTest.kt
index 2eb3848a4..709dc42b8 100644
--- a/xml/lsp/src/test/java/com/itsaky/androidide/lsp/xml/XMLLSPTest.kt
+++ b/xml/lsp/src/test/java/com/itsaky/androidide/lsp/xml/XMLLSPTest.kt
@@ -19,7 +19,7 @@ package com.itsaky.androidide.lsp.xml
import com.itsaky.androidide.lookup.Lookup
import com.itsaky.androidide.lsp.api.ILanguageServerRegistry
import com.itsaky.androidide.lsp.testing.LSPTest
-import com.itsaky.androidide.projects.api.ModuleProject
+import com.itsaky.androidide.projects.ModuleProject
import com.itsaky.androidide.projects.util.findAppModule
import com.itsaky.androidide.xml.resources.ResourceTableRegistry
import com.itsaky.androidide.xml.versions.ApiVersions