From 55c346f76906352527588659f4df32ff402ef40b Mon Sep 17 00:00:00 2001 From: AhmadKharfan Date: Thu, 30 Jul 2026 01:53:17 +0300 Subject: [PATCH 1/4] give feature-private implementations feature-owned packages. --- app/src/main/cpp/asl_pty.c | 8 +++---- .../androidstudiolite/MainActivity.kt | 2 +- .../androidstudiolite/di/BuildRunModule.kt | 2 +- .../androidstudiolite/di/KoinModules.kt | 2 +- .../androidstudiolite/di/TerminalModule.kt | 6 ++--- app/src/main/keepRules/rules.keep | 2 +- feature/buildrun/src/main/AndroidManifest.xml | 23 +++++++++++++++++++ .../feature/buildrun/BuildInstallRunner.kt | 4 ++-- .../feature/buildrun/BuildNotifier.kt | 2 +- .../feature/buildrun/BuildRunCoordinator.kt | 4 ++-- .../buildrun}/install/ApkInstaller.kt | 2 +- .../install/InstallConfirmActivity.kt | 2 +- .../buildrun}/install/InstallModels.kt | 2 +- .../install/InstallPromptNotifier.kt | 2 +- .../install/InstallStatusReceiver.kt | 2 +- .../buildrun/BuildInstallOrchestrationTest.kt | 2 +- .../install/InstallPromptClaimRegistryTest.kt | 2 +- .../install/InstallStatusMapperTest.kt | 2 +- .../editor/EditorRootInvalidationTest.kt | 2 +- .../feature/editor/EditorTabLifecycleTest.kt | 2 +- .../data}/AndroidOnboardingRepository.kt | 2 +- .../terminal/EditorEmbeddedTerminal.kt | 6 ++--- .../terminal}/ShellTerminalRepository.kt | 2 +- .../feature/terminal/TerminalLinuxStatus.kt | 4 ++-- .../feature/terminal/TerminalViewModel.kt | 6 ++--- .../linux/LinuxBootstrapInstaller.kt | 2 +- .../terminal}/linux/LinuxBootstrapPackages.kt | 2 +- .../terminal}/linux/LinuxDistro.kt | 2 +- .../terminal}/linux/ProotEnvironment.kt | 2 +- .../terminal}/pty/NativePty.kt | 2 +- .../terminal}/pty/PtyProcess.kt | 2 +- .../terminal}/pty/PtySession.kt | 2 +- .../terminal}/pty/PtyTerminalRepository.kt | 2 +- .../terminal}/ShellTerminalRepositoryTest.kt | 2 +- .../pty/PtyTerminalRepositoryTest.kt | 2 +- 35 files changed, 69 insertions(+), 46 deletions(-) rename feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/{data/buildsystem => feature/buildrun}/install/ApkInstaller.kt (99%) rename feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/{data/buildsystem => feature/buildrun}/install/InstallConfirmActivity.kt (96%) rename feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/{data/buildsystem => feature/buildrun}/install/InstallModels.kt (97%) rename feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/{data/buildsystem => feature/buildrun}/install/InstallPromptNotifier.kt (98%) rename feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/{data/buildsystem => feature/buildrun}/install/InstallStatusReceiver.kt (98%) rename feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/{data/buildsystem => feature/buildrun}/install/InstallPromptClaimRegistryTest.kt (90%) rename feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/{data/buildsystem => feature/buildrun}/install/InstallStatusMapperTest.kt (96%) rename feature/onboarding/src/main/java/com/ahmadkharfan/androidstudiolite/{data/onboarding => feature/onboarding/data}/AndroidOnboardingRepository.kt (97%) rename feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/{data/local => feature/terminal}/ShellTerminalRepository.kt (98%) rename feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/{core => feature/terminal}/linux/LinuxBootstrapInstaller.kt (99%) rename feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/{core => feature/terminal}/linux/LinuxBootstrapPackages.kt (82%) rename feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/{core => feature/terminal}/linux/LinuxDistro.kt (94%) rename feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/{core => feature/terminal}/linux/ProotEnvironment.kt (99%) rename feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/{data/local => feature/terminal}/pty/NativePty.kt (88%) rename feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/{data/local => feature/terminal}/pty/PtyProcess.kt (96%) rename feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/{data/local => feature/terminal}/pty/PtySession.kt (94%) rename feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/{data/local => feature/terminal}/pty/PtyTerminalRepository.kt (98%) rename feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/{data/local => feature/terminal}/ShellTerminalRepositoryTest.kt (98%) rename feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/{data/local => feature/terminal}/pty/PtyTerminalRepositoryTest.kt (98%) diff --git a/app/src/main/cpp/asl_pty.c b/app/src/main/cpp/asl_pty.c index 63b8bae3..dac3ef12 100644 --- a/app/src/main/cpp/asl_pty.c +++ b/app/src/main/cpp/asl_pty.c @@ -46,7 +46,7 @@ static void free_cstr_array(char **array) { * given environment. Returns a two-element int[] { masterFd, pid }, or null on failure. */ JNIEXPORT jintArray JNICALL -Java_com_ahmadkharfan_androidstudiolite_data_local_pty_NativePty_nativeForkPty( +Java_com_ahmadkharfan_androidstudiolite_feature_terminal_pty_NativePty_nativeForkPty( JNIEnv *env, jclass clazz, jobjectArray jargv, jobjectArray jenvp, jstring jcwd, jint rows, jint cols) { (void) clazz; @@ -104,7 +104,7 @@ Java_com_ahmadkharfan_androidstudiolite_data_local_pty_NativePty_nativeForkPty( /* Tell the kernel the terminal was resized so the child receives SIGWINCH and reflows. */ JNIEXPORT void JNICALL -Java_com_ahmadkharfan_androidstudiolite_data_local_pty_NativePty_nativeSetWinSize( +Java_com_ahmadkharfan_androidstudiolite_feature_terminal_pty_NativePty_nativeSetWinSize( JNIEnv *env, jclass clazz, jint fd, jint rows, jint cols) { (void) env; (void) clazz; @@ -117,7 +117,7 @@ Java_com_ahmadkharfan_androidstudiolite_data_local_pty_NativePty_nativeSetWinSiz /* Reap the child; returns its exit code (or 128+signal), or -1 if it isn't our child / already reaped. */ JNIEXPORT jint JNICALL -Java_com_ahmadkharfan_androidstudiolite_data_local_pty_NativePty_nativeWaitFor( +Java_com_ahmadkharfan_androidstudiolite_feature_terminal_pty_NativePty_nativeWaitFor( JNIEnv *env, jclass clazz, jint pid) { (void) env; (void) clazz; @@ -134,7 +134,7 @@ Java_com_ahmadkharfan_androidstudiolite_data_local_pty_NativePty_nativeWaitFor( /* Send SIGHUP then close the master, ending the session. */ JNIEXPORT void JNICALL -Java_com_ahmadkharfan_androidstudiolite_data_local_pty_NativePty_nativeDestroy( +Java_com_ahmadkharfan_androidstudiolite_feature_terminal_pty_NativePty_nativeDestroy( JNIEnv *env, jclass clazz, jint fd, jint pid) { (void) env; (void) clazz; diff --git a/app/src/main/java/com/ahmadkharfan/androidstudiolite/MainActivity.kt b/app/src/main/java/com/ahmadkharfan/androidstudiolite/MainActivity.kt index b6d7569c..b9bde3b6 100644 --- a/app/src/main/java/com/ahmadkharfan/androidstudiolite/MainActivity.kt +++ b/app/src/main/java/com/ahmadkharfan/androidstudiolite/MainActivity.kt @@ -21,7 +21,7 @@ import androidx.compose.ui.Modifier import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.lifecycleScope -import com.ahmadkharfan.androidstudiolite.data.buildsystem.install.PendingInstallConfirmation +import com.ahmadkharfan.androidstudiolite.feature.buildrun.install.PendingInstallConfirmation import com.ahmadkharfan.androidstudiolite.designsystem.theme.AslAppTheme import com.ahmadkharfan.androidstudiolite.domain.model.AppPreferences import com.ahmadkharfan.androidstudiolite.domain.model.AppThemeMode diff --git a/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/BuildRunModule.kt b/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/BuildRunModule.kt index bf931c73..cb340e2f 100644 --- a/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/BuildRunModule.kt +++ b/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/BuildRunModule.kt @@ -4,7 +4,7 @@ import android.content.Context import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.preferencesDataStore -import com.ahmadkharfan.androidstudiolite.data.buildsystem.install.ApkInstaller +import com.ahmadkharfan.androidstudiolite.feature.buildrun.install.ApkInstaller import com.ahmadkharfan.androidstudiolite.data.buildsystem.signing.AndroidKeystoreManager import com.ahmadkharfan.androidstudiolite.data.remote.ActiveBuildStore import com.ahmadkharfan.androidstudiolite.domain.buildsystem.ActiveBuildRepository diff --git a/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/KoinModules.kt b/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/KoinModules.kt index 6bed7f05..f11db6b6 100644 --- a/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/KoinModules.kt +++ b/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/KoinModules.kt @@ -1,6 +1,6 @@ package com.ahmadkharfan.androidstudiolite.di import com.ahmadkharfan.androidstudiolite.core.environment.IdeEnvironmentPaths -import com.ahmadkharfan.androidstudiolite.data.onboarding.AndroidOnboardingRepository +import com.ahmadkharfan.androidstudiolite.feature.onboarding.data.AndroidOnboardingRepository import com.ahmadkharfan.androidstudiolite.domain.repository.OnboardingRepository import com.ahmadkharfan.androidstudiolite.feature.createproject.CreateProjectViewModel import com.ahmadkharfan.androidstudiolite.feature.editor.EditorViewModel diff --git a/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/TerminalModule.kt b/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/TerminalModule.kt index 699bc5d9..802425fe 100644 --- a/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/TerminalModule.kt +++ b/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/TerminalModule.kt @@ -1,8 +1,8 @@ package com.ahmadkharfan.androidstudiolite.di -import com.ahmadkharfan.androidstudiolite.core.linux.LinuxBootstrapInstaller -import com.ahmadkharfan.androidstudiolite.core.linux.ProotEnvironment -import com.ahmadkharfan.androidstudiolite.data.local.pty.PtyTerminalRepository +import com.ahmadkharfan.androidstudiolite.feature.terminal.linux.LinuxBootstrapInstaller +import com.ahmadkharfan.androidstudiolite.feature.terminal.linux.ProotEnvironment +import com.ahmadkharfan.androidstudiolite.feature.terminal.pty.PtyTerminalRepository import com.ahmadkharfan.androidstudiolite.feature.terminal.TerminalSessionManager import org.koin.android.ext.koin.androidContext import org.koin.core.module.Module diff --git a/app/src/main/keepRules/rules.keep b/app/src/main/keepRules/rules.keep index bacb5427..333c9df4 100644 --- a/app/src/main/keepRules/rules.keep +++ b/app/src/main/keepRules/rules.keep @@ -11,7 +11,7 @@ } # --- JNI / native PTY --- --keepclasseswithmembernames class com.ahmadkharfan.androidstudiolite.data.local.pty.NativePty { +-keepclasseswithmembernames class com.ahmadkharfan.androidstudiolite.feature.terminal.pty.NativePty { native ; } diff --git a/feature/buildrun/src/main/AndroidManifest.xml b/feature/buildrun/src/main/AndroidManifest.xml index 549d714c..6968bd37 100644 --- a/feature/buildrun/src/main/AndroidManifest.xml +++ b/feature/buildrun/src/main/AndroidManifest.xml @@ -3,4 +3,27 @@ + + + + + + + + + + + + diff --git a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildInstallRunner.kt b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildInstallRunner.kt index 1629eec3..7c0aa976 100644 --- a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildInstallRunner.kt +++ b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildInstallRunner.kt @@ -1,7 +1,7 @@ package com.ahmadkharfan.androidstudiolite.feature.buildrun -import com.ahmadkharfan.androidstudiolite.data.buildsystem.install.InstallEvent -import com.ahmadkharfan.androidstudiolite.data.buildsystem.install.UninstallEvent +import com.ahmadkharfan.androidstudiolite.feature.buildrun.install.InstallEvent +import com.ahmadkharfan.androidstudiolite.feature.buildrun.install.UninstallEvent import com.ahmadkharfan.androidstudiolite.domain.buildsystem.GradleProjectInspector import com.ahmadkharfan.androidstudiolite.domain.buildsystem.BuildEvent import com.ahmadkharfan.androidstudiolite.domain.buildsystem.BuildRequest diff --git a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildNotifier.kt b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildNotifier.kt index bb230915..65487b15 100644 --- a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildNotifier.kt +++ b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildNotifier.kt @@ -12,7 +12,7 @@ import android.os.Build import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.core.content.ContextCompat -import com.ahmadkharfan.androidstudiolite.data.buildsystem.install.InstallConfirmActivity +import com.ahmadkharfan.androidstudiolite.feature.buildrun.install.InstallConfirmActivity import java.util.Locale class BuildNotifier(private val context: Context) { diff --git a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildRunCoordinator.kt b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildRunCoordinator.kt index c2dd7ae9..772b6efc 100644 --- a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildRunCoordinator.kt +++ b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildRunCoordinator.kt @@ -1,8 +1,8 @@ package com.ahmadkharfan.androidstudiolite.feature.buildrun import android.content.Context -import com.ahmadkharfan.androidstudiolite.data.buildsystem.install.ApkInstaller -import com.ahmadkharfan.androidstudiolite.data.buildsystem.install.UninstallEvent +import com.ahmadkharfan.androidstudiolite.feature.buildrun.install.ApkInstaller +import com.ahmadkharfan.androidstudiolite.feature.buildrun.install.UninstallEvent import com.ahmadkharfan.androidstudiolite.domain.buildsystem.GradleProjectInspector import com.ahmadkharfan.androidstudiolite.domain.buildsystem.ActiveBuild import com.ahmadkharfan.androidstudiolite.domain.buildsystem.ActiveBuildRepository diff --git a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/ApkInstaller.kt b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/ApkInstaller.kt similarity index 99% rename from feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/ApkInstaller.kt rename to feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/ApkInstaller.kt index ca5b8340..41a51fad 100644 --- a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/ApkInstaller.kt +++ b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/ApkInstaller.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.buildsystem.install +package com.ahmadkharfan.androidstudiolite.feature.buildrun.install import kotlin.time.Duration.Companion.milliseconds import android.app.PendingIntent diff --git a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallConfirmActivity.kt b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallConfirmActivity.kt similarity index 96% rename from feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallConfirmActivity.kt rename to feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallConfirmActivity.kt index 25f65337..d88f0693 100644 --- a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallConfirmActivity.kt +++ b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallConfirmActivity.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.buildsystem.install +package com.ahmadkharfan.androidstudiolite.feature.buildrun.install import android.app.Activity import android.content.Intent diff --git a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallModels.kt b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallModels.kt similarity index 97% rename from feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallModels.kt rename to feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallModels.kt index 2bd7710a..cfc024e0 100644 --- a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallModels.kt +++ b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallModels.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.buildsystem.install +package com.ahmadkharfan.androidstudiolite.feature.buildrun.install import android.content.pm.PackageInstaller diff --git a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallPromptNotifier.kt b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallPromptNotifier.kt similarity index 98% rename from feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallPromptNotifier.kt rename to feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallPromptNotifier.kt index efbbbb26..be8f35fb 100644 --- a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallPromptNotifier.kt +++ b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallPromptNotifier.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.buildsystem.install +package com.ahmadkharfan.androidstudiolite.feature.buildrun.install import android.Manifest import android.annotation.SuppressLint diff --git a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallStatusReceiver.kt b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallStatusReceiver.kt similarity index 98% rename from feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallStatusReceiver.kt rename to feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallStatusReceiver.kt index 109078e7..54e55f2c 100644 --- a/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallStatusReceiver.kt +++ b/feature/buildrun/src/main/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallStatusReceiver.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.buildsystem.install +package com.ahmadkharfan.androidstudiolite.feature.buildrun.install import android.app.ActivityManager import android.content.BroadcastReceiver diff --git a/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildInstallOrchestrationTest.kt b/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildInstallOrchestrationTest.kt index 28b8ba8a..b9aea834 100644 --- a/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildInstallOrchestrationTest.kt +++ b/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/BuildInstallOrchestrationTest.kt @@ -1,7 +1,7 @@ package com.ahmadkharfan.androidstudiolite.feature.buildrun import android.content.ContextWrapper -import com.ahmadkharfan.androidstudiolite.data.buildsystem.install.InstallEvent +import com.ahmadkharfan.androidstudiolite.feature.buildrun.install.InstallEvent import com.ahmadkharfan.androidstudiolite.data.gradle.GradleProjectReader import com.ahmadkharfan.androidstudiolite.domain.buildsystem.ActiveBuild import com.ahmadkharfan.androidstudiolite.domain.buildsystem.ActiveBuildRepository diff --git a/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallPromptClaimRegistryTest.kt b/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallPromptClaimRegistryTest.kt similarity index 90% rename from feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallPromptClaimRegistryTest.kt rename to feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallPromptClaimRegistryTest.kt index 758b2e90..e568f320 100644 --- a/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallPromptClaimRegistryTest.kt +++ b/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallPromptClaimRegistryTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.buildsystem.install +package com.ahmadkharfan.androidstudiolite.feature.buildrun.install import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue diff --git a/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallStatusMapperTest.kt b/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallStatusMapperTest.kt similarity index 96% rename from feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallStatusMapperTest.kt rename to feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallStatusMapperTest.kt index d6ce1e4e..5491c271 100644 --- a/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/data/buildsystem/install/InstallStatusMapperTest.kt +++ b/feature/buildrun/src/test/java/com/ahmadkharfan/androidstudiolite/feature/buildrun/install/InstallStatusMapperTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.buildsystem.install +package com.ahmadkharfan.androidstudiolite.feature.buildrun.install import android.content.pm.PackageInstaller import org.junit.Assert.assertEquals diff --git a/feature/editor/src/test/java/com/ahmadkharfan/androidstudiolite/feature/editor/EditorRootInvalidationTest.kt b/feature/editor/src/test/java/com/ahmadkharfan/androidstudiolite/feature/editor/EditorRootInvalidationTest.kt index 1cee8ef8..42e2999b 100644 --- a/feature/editor/src/test/java/com/ahmadkharfan/androidstudiolite/feature/editor/EditorRootInvalidationTest.kt +++ b/feature/editor/src/test/java/com/ahmadkharfan/androidstudiolite/feature/editor/EditorRootInvalidationTest.kt @@ -3,7 +3,7 @@ package com.ahmadkharfan.androidstudiolite.feature.editor import kotlin.time.Duration.Companion.seconds import androidx.lifecycle.viewModelScope import android.content.ContextWrapper -import com.ahmadkharfan.androidstudiolite.data.buildsystem.install.ApkInstaller +import com.ahmadkharfan.androidstudiolite.feature.buildrun.install.ApkInstaller import com.ahmadkharfan.androidstudiolite.data.gradle.GradleProjectReader import com.ahmadkharfan.androidstudiolite.data.remote.InMemoryActiveBuildStore import com.ahmadkharfan.androidstudiolite.domain.buildsystem.BuildEvent diff --git a/feature/editor/src/test/java/com/ahmadkharfan/androidstudiolite/feature/editor/EditorTabLifecycleTest.kt b/feature/editor/src/test/java/com/ahmadkharfan/androidstudiolite/feature/editor/EditorTabLifecycleTest.kt index 111f8eba..b6bf163e 100644 --- a/feature/editor/src/test/java/com/ahmadkharfan/androidstudiolite/feature/editor/EditorTabLifecycleTest.kt +++ b/feature/editor/src/test/java/com/ahmadkharfan/androidstudiolite/feature/editor/EditorTabLifecycleTest.kt @@ -3,7 +3,7 @@ package com.ahmadkharfan.androidstudiolite.feature.editor import kotlin.time.Duration.Companion.seconds import androidx.lifecycle.viewModelScope import android.content.ContextWrapper -import com.ahmadkharfan.androidstudiolite.data.buildsystem.install.ApkInstaller +import com.ahmadkharfan.androidstudiolite.feature.buildrun.install.ApkInstaller import com.ahmadkharfan.androidstudiolite.data.gradle.GradleProjectReader import com.ahmadkharfan.androidstudiolite.data.remote.InMemoryActiveBuildStore import com.ahmadkharfan.androidstudiolite.domain.buildsystem.BuildEvent diff --git a/feature/onboarding/src/main/java/com/ahmadkharfan/androidstudiolite/data/onboarding/AndroidOnboardingRepository.kt b/feature/onboarding/src/main/java/com/ahmadkharfan/androidstudiolite/feature/onboarding/data/AndroidOnboardingRepository.kt similarity index 97% rename from feature/onboarding/src/main/java/com/ahmadkharfan/androidstudiolite/data/onboarding/AndroidOnboardingRepository.kt rename to feature/onboarding/src/main/java/com/ahmadkharfan/androidstudiolite/feature/onboarding/data/AndroidOnboardingRepository.kt index a4887455..c36c51f8 100644 --- a/feature/onboarding/src/main/java/com/ahmadkharfan/androidstudiolite/data/onboarding/AndroidOnboardingRepository.kt +++ b/feature/onboarding/src/main/java/com/ahmadkharfan/androidstudiolite/feature/onboarding/data/AndroidOnboardingRepository.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.onboarding +package com.ahmadkharfan.androidstudiolite.feature.onboarding.data import android.content.Context import androidx.datastore.preferences.core.booleanPreferencesKey diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/EditorEmbeddedTerminal.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/EditorEmbeddedTerminal.kt index 34b3c01b..e402ff7d 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/EditorEmbeddedTerminal.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/EditorEmbeddedTerminal.kt @@ -23,9 +23,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.ahmadkharfan.androidstudiolite.core.linux.LinuxBootstrapInstaller -import com.ahmadkharfan.androidstudiolite.core.linux.LinuxInstallState -import com.ahmadkharfan.androidstudiolite.core.linux.ProotEnvironment +import com.ahmadkharfan.androidstudiolite.feature.terminal.linux.LinuxBootstrapInstaller +import com.ahmadkharfan.androidstudiolite.feature.terminal.linux.LinuxInstallState +import com.ahmadkharfan.androidstudiolite.feature.terminal.linux.ProotEnvironment import com.ahmadkharfan.androidstudiolite.designsystem.theme.AslCode import com.ahmadkharfan.androidstudiolite.designsystem.theme.AslShape import com.ahmadkharfan.androidstudiolite.designsystem.theme.AslTheme diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/ShellTerminalRepository.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/ShellTerminalRepository.kt similarity index 98% rename from feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/ShellTerminalRepository.kt rename to feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/ShellTerminalRepository.kt index ae5f2905..5153dde7 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/ShellTerminalRepository.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/ShellTerminalRepository.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.feature.terminal import com.ahmadkharfan.androidstudiolite.domain.model.TerminalEvent import com.ahmadkharfan.androidstudiolite.domain.model.TerminalLineKind diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/TerminalLinuxStatus.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/TerminalLinuxStatus.kt index 332485aa..83368b80 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/TerminalLinuxStatus.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/TerminalLinuxStatus.kt @@ -1,7 +1,7 @@ package com.ahmadkharfan.androidstudiolite.feature.terminal -import com.ahmadkharfan.androidstudiolite.core.linux.LinuxInstallState -import com.ahmadkharfan.androidstudiolite.core.linux.ProotEnvironment +import com.ahmadkharfan.androidstudiolite.feature.terminal.linux.LinuxInstallState +import com.ahmadkharfan.androidstudiolite.feature.terminal.linux.ProotEnvironment fun LinuxInstallState.toLinuxStatus(proot: ProotEnvironment): LinuxStatus { val onDisk = proot.isInstalled() diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/TerminalViewModel.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/TerminalViewModel.kt index 760fc048..fe43db2c 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/TerminalViewModel.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/TerminalViewModel.kt @@ -2,9 +2,9 @@ package com.ahmadkharfan.androidstudiolite.feature.terminal import androidx.lifecycle.viewModelScope import com.ahmadkharfan.androidstudiolite.core.BaseViewModel -import com.ahmadkharfan.androidstudiolite.core.linux.LinuxBootstrapInstaller -import com.ahmadkharfan.androidstudiolite.core.linux.LinuxInstallState -import com.ahmadkharfan.androidstudiolite.core.linux.ProotEnvironment +import com.ahmadkharfan.androidstudiolite.feature.terminal.linux.LinuxBootstrapInstaller +import com.ahmadkharfan.androidstudiolite.feature.terminal.linux.LinuxInstallState +import com.ahmadkharfan.androidstudiolite.feature.terminal.linux.ProotEnvironment import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/LinuxBootstrapInstaller.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/LinuxBootstrapInstaller.kt similarity index 99% rename from feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/LinuxBootstrapInstaller.kt rename to feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/LinuxBootstrapInstaller.kt index 4112e020..c4ff7272 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/LinuxBootstrapInstaller.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/LinuxBootstrapInstaller.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.core.linux +package com.ahmadkharfan.androidstudiolite.feature.terminal.linux import android.system.Os import kotlinx.coroutines.CoroutineDispatcher diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/LinuxBootstrapPackages.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/LinuxBootstrapPackages.kt similarity index 82% rename from feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/LinuxBootstrapPackages.kt rename to feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/LinuxBootstrapPackages.kt index 737f4bae..b921f75a 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/LinuxBootstrapPackages.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/LinuxBootstrapPackages.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.core.linux +package com.ahmadkharfan.androidstudiolite.feature.terminal.linux object LinuxBootstrapPackages { val packages: List = listOf( diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/LinuxDistro.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/LinuxDistro.kt similarity index 94% rename from feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/LinuxDistro.kt rename to feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/LinuxDistro.kt index 6cca6a29..236a1e01 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/LinuxDistro.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/LinuxDistro.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.core.linux +package com.ahmadkharfan.androidstudiolite.feature.terminal.linux import android.os.Build diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/ProotEnvironment.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/ProotEnvironment.kt similarity index 99% rename from feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/ProotEnvironment.kt rename to feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/ProotEnvironment.kt index 6375bfb8..85a48a4a 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/core/linux/ProotEnvironment.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/linux/ProotEnvironment.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.core.linux +package com.ahmadkharfan.androidstudiolite.feature.terminal.linux import android.content.Context import android.system.Os diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/NativePty.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/NativePty.kt similarity index 88% rename from feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/NativePty.kt rename to feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/NativePty.kt index a7981d4b..8dd3f3b8 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/NativePty.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/NativePty.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local.pty +package com.ahmadkharfan.androidstudiolite.feature.terminal.pty internal object NativePty { diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtyProcess.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtyProcess.kt similarity index 96% rename from feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtyProcess.kt rename to feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtyProcess.kt index 99432961..ed05947a 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtyProcess.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtyProcess.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local.pty +package com.ahmadkharfan.androidstudiolite.feature.terminal.pty import android.os.ParcelFileDescriptor import java.io.File diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtySession.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtySession.kt similarity index 94% rename from feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtySession.kt rename to feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtySession.kt index b6024d85..917412d7 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtySession.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtySession.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local.pty +package com.ahmadkharfan.androidstudiolite.feature.terminal.pty import java.io.File import java.io.InputStream diff --git a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtyTerminalRepository.kt b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtyTerminalRepository.kt similarity index 98% rename from feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtyTerminalRepository.kt rename to feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtyTerminalRepository.kt index 12514563..a8c962c3 100644 --- a/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtyTerminalRepository.kt +++ b/feature/terminal/src/main/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtyTerminalRepository.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local.pty +package com.ahmadkharfan.androidstudiolite.feature.terminal.pty import com.ahmadkharfan.androidstudiolite.domain.model.TerminalEvent import com.ahmadkharfan.androidstudiolite.domain.repository.TerminalRepository diff --git a/feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/ShellTerminalRepositoryTest.kt b/feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/feature/terminal/ShellTerminalRepositoryTest.kt similarity index 98% rename from feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/ShellTerminalRepositoryTest.kt rename to feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/feature/terminal/ShellTerminalRepositoryTest.kt index e6260020..7f5f668c 100644 --- a/feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/ShellTerminalRepositoryTest.kt +++ b/feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/feature/terminal/ShellTerminalRepositoryTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.feature.terminal import kotlin.time.Duration.Companion.seconds import kotlin.time.Duration.Companion.milliseconds diff --git a/feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtyTerminalRepositoryTest.kt b/feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtyTerminalRepositoryTest.kt similarity index 98% rename from feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtyTerminalRepositoryTest.kt rename to feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtyTerminalRepositoryTest.kt index 76bc2e59..fb98cf16 100644 --- a/feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/pty/PtyTerminalRepositoryTest.kt +++ b/feature/terminal/src/test/java/com/ahmadkharfan/androidstudiolite/feature/terminal/pty/PtyTerminalRepositoryTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local.pty +package com.ahmadkharfan.androidstudiolite.feature.terminal.pty import com.ahmadkharfan.androidstudiolite.domain.model.TerminalEvent import kotlinx.coroutines.Dispatchers From a10a58d370f80803f8d3d47a4391e09af92880e6 Mon Sep 17 00:00:00 2001 From: AhmadKharfan Date: Thu, 30 Jul 2026 01:53:17 +0300 Subject: [PATCH 2/4] let buildrun declare its own components. --- app/src/main/AndroidManifest.xml | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9dbeaa95..7ea2bae0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,25 +69,6 @@ - - - - - - - - From 4943ca2375e57ded51bb777115af3bafb6026f4c Mon Sep 17 00:00:00 2001 From: AhmadKharfan Date: Thu, 30 Jul 2026 01:53:17 +0300 Subject: [PATCH 3/4] guard the native pty binding against a package rename. --- .../androidstudiolite/NativePtyBindingTest.kt | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 app/src/test/java/com/ahmadkharfan/androidstudiolite/NativePtyBindingTest.kt diff --git a/app/src/test/java/com/ahmadkharfan/androidstudiolite/NativePtyBindingTest.kt b/app/src/test/java/com/ahmadkharfan/androidstudiolite/NativePtyBindingTest.kt new file mode 100644 index 00000000..878130af --- /dev/null +++ b/app/src/test/java/com/ahmadkharfan/androidstudiolite/NativePtyBindingTest.kt @@ -0,0 +1,54 @@ +package com.ahmadkharfan.androidstudiolite + +import java.io.File +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Test + +/** + * The PTY package name is written down in three places that must agree: the Kotlin `NativePty` + * object, the JNI function names in `asl_pty.c`, and the R8 keep rule. + * + * A mismatch does not fail the build. It fails at runtime with `UnsatisfiedLinkError` the first time + * a terminal is opened, or — worse — only in a release build if the keep rule stops matching and R8 + * strips the native methods. This test ties the C and keep-rule ends to the same package so a future + * rename cannot quietly break the binding. + */ +class NativePtyBindingTest { + + private val moduleRoot = File("").absoluteFile + private val cSource = File(moduleRoot, "src/main/cpp/asl_pty.c") + private val keepRules = File(moduleRoot, "src/main/keepRules/rules.keep") + + private val nativeMethods = listOf("nativeForkPty", "nativeSetWinSize", "nativeWaitFor", "nativeDestroy") + + @Test + fun `the keep rule and the jni symbols name the same class`() { + assertTrue("expected $cSource to exist", cSource.isFile) + assertTrue("expected $keepRules to exist", keepRules.isFile) + + val keptClass = Regex("""-keepclasseswithmembernames class ([\w.]*NativePty)""") + .find(keepRules.readText()) + ?.groupValues + ?.get(1) + assertTrue("no NativePty keep rule found in $keepRules", keptClass != null) + + val expectedPrefix = "Java_" + keptClass!!.replace(".", "_") + "_" + val actualPrefixes = Regex("""Java_[\w]*_NativePty_""").findAll(cSource.readText()) + .map { it.value } + .toSet() + + assertEquals( + "JNI symbols in asl_pty.c must match the class named by the R8 keep rule", + setOf(expectedPrefix), + actualPrefixes, + ) + } + + @Test + fun `every declared native method has a jni implementation`() { + val c = cSource.readText() + val missing = nativeMethods.filterNot { c.contains("_NativePty_$it") } + assertEquals("native methods without a JNI implementation", emptyList(), missing) + } +} From 245f85fd1811132d6490a33ce3b9d33b2da1913b Mon Sep 17 00:00:00 2001 From: AhmadKharfan Date: Thu, 30 Jul 2026 01:56:33 +0300 Subject: [PATCH 4/4] give the git data module its own package root. --- .../com/ahmadkharfan/androidstudiolite/di/GitModule.kt | 8 ++++---- .../data/{local => git}/DataStoreGitAuthorStore.kt | 2 +- .../data/{local => git}/EncryptedGitCredentialStore.kt | 2 +- .../data/{local => git}/GitOperationCoordinator.kt | 2 +- .../data/{local => git}/GitRefreshPipeline.kt | 2 +- .../data/{local => git}/GitUrlRedactor.kt | 2 +- .../data/{local => git}/InMemoryGitAuthorStore.kt | 2 +- .../data/{local => git}/JGitBranchEngine.kt | 2 +- .../data/{local => git}/JGitDiffReader.kt | 2 +- .../data/{local => git}/JGitExceptionMapper.kt | 2 +- .../data/{local => git}/JGitGitRepository.kt | 5 ++++- .../data/{local => git}/JGitHistoryEngine.kt | 2 +- .../data/{local => git}/JGitIndexEditor.kt | 2 +- .../data/{local => git}/JGitIntegrationEngine.kt | 2 +- .../data/{local => git}/JGitRemoteEngine.kt | 2 +- .../data/{local => git}/JGitStashEngine.kt | 2 +- .../data/{local => git}/JGitStatusComputer.kt | 2 +- .../data/{local => git}/JGitSubmoduleEngine.kt | 2 +- .../data/{local => git}/JGitSyncEngine.kt | 2 +- .../data/{local => git}/JGitTagEngine.kt | 2 +- .../data/{local => git}/GitOperationCoordinatorTest.kt | 2 +- .../data/{local => git}/GitRefreshPipelineTest.kt | 2 +- .../data/{local => git}/GitUrlRedactorTest.kt | 2 +- .../data/{local => git}/JGitForceWithLeaseTest.kt | 2 +- .../data/{local => git}/JGitGitRepositoryOpsTest.kt | 2 +- .../data/{local => git}/JGitGitRepositorySyncTest.kt | 2 +- .../data/{local => git}/JGitGitRepositoryTest.kt | 2 +- .../data/{local => git}/JGitStatusComputerTest.kt | 2 +- .../data/{local => git}/PartialStagingTest.kt | 2 +- .../domain/usecase/CloneProjectUseCaseTest.kt | 2 +- 30 files changed, 36 insertions(+), 33 deletions(-) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/DataStoreGitAuthorStore.kt (96%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/EncryptedGitCredentialStore.kt (97%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/GitOperationCoordinator.kt (98%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/GitRefreshPipeline.kt (98%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/GitUrlRedactor.kt (94%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/InMemoryGitAuthorStore.kt (91%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitBranchEngine.kt (97%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitDiffReader.kt (99%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitExceptionMapper.kt (95%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitGitRepository.kt (99%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitHistoryEngine.kt (99%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitIndexEditor.kt (99%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitIntegrationEngine.kt (99%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitRemoteEngine.kt (97%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitStashEngine.kt (95%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitStatusComputer.kt (99%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitSubmoduleEngine.kt (97%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitSyncEngine.kt (99%) rename data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitTagEngine.kt (95%) rename data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/GitOperationCoordinatorTest.kt (98%) rename data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/GitRefreshPipelineTest.kt (96%) rename data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/GitUrlRedactorTest.kt (96%) rename data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitForceWithLeaseTest.kt (98%) rename data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitGitRepositoryOpsTest.kt (99%) rename data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitGitRepositorySyncTest.kt (98%) rename data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitGitRepositoryTest.kt (99%) rename data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/JGitStatusComputerTest.kt (99%) rename data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/{local => git}/PartialStagingTest.kt (99%) diff --git a/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/GitModule.kt b/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/GitModule.kt index e98ec8be..d4749b13 100644 --- a/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/GitModule.kt +++ b/app/src/main/java/com/ahmadkharfan/androidstudiolite/di/GitModule.kt @@ -6,11 +6,11 @@ import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.preferencesDataStore import com.ahmadkharfan.androidstudiolite.BuildConfig import com.ahmadkharfan.androidstudiolite.core.environment.IdeEnvironmentPaths -import com.ahmadkharfan.androidstudiolite.data.local.EncryptedGitCredentialStore -import com.ahmadkharfan.androidstudiolite.data.local.JGitGitRepository +import com.ahmadkharfan.androidstudiolite.data.git.EncryptedGitCredentialStore +import com.ahmadkharfan.androidstudiolite.data.git.JGitGitRepository import com.ahmadkharfan.androidstudiolite.data.remote.github.GitHubDeviceFlowAuthenticator -import com.ahmadkharfan.androidstudiolite.data.local.GitOperationCoordinator -import com.ahmadkharfan.androidstudiolite.data.local.DataStoreGitAuthorStore +import com.ahmadkharfan.androidstudiolite.data.git.GitOperationCoordinator +import com.ahmadkharfan.androidstudiolite.data.git.DataStoreGitAuthorStore import com.ahmadkharfan.androidstudiolite.data.local.DefaultWorkspaceWriteGate import com.ahmadkharfan.androidstudiolite.domain.repository.GitAuthorStore import com.ahmadkharfan.androidstudiolite.domain.repository.GitCredentialStore diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/DataStoreGitAuthorStore.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/DataStoreGitAuthorStore.kt similarity index 96% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/DataStoreGitAuthorStore.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/DataStoreGitAuthorStore.kt index 7f03e7d2..8118b1b1 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/DataStoreGitAuthorStore.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/DataStoreGitAuthorStore.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/EncryptedGitCredentialStore.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/EncryptedGitCredentialStore.kt similarity index 97% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/EncryptedGitCredentialStore.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/EncryptedGitCredentialStore.kt index 4ddfecab..218d2df9 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/EncryptedGitCredentialStore.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/EncryptedGitCredentialStore.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import android.content.Context import android.content.SharedPreferences diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/GitOperationCoordinator.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/GitOperationCoordinator.kt similarity index 98% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/GitOperationCoordinator.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/GitOperationCoordinator.kt index 5934d086..4ccef589 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/GitOperationCoordinator.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/GitOperationCoordinator.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.ActiveOperation import com.ahmadkharfan.androidstudiolite.domain.model.GitOperationType diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/GitRefreshPipeline.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/GitRefreshPipeline.kt similarity index 98% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/GitRefreshPipeline.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/GitRefreshPipeline.kt index 1f986ff0..d2d35cdc 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/GitRefreshPipeline.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/GitRefreshPipeline.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.CoroutineScope diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/GitUrlRedactor.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/GitUrlRedactor.kt similarity index 94% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/GitUrlRedactor.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/GitUrlRedactor.kt index 8c24c6e0..a3a40e06 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/GitUrlRedactor.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/GitUrlRedactor.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import java.net.URI diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/InMemoryGitAuthorStore.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/InMemoryGitAuthorStore.kt similarity index 91% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/InMemoryGitAuthorStore.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/InMemoryGitAuthorStore.kt index 8423c4de..36d4c959 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/InMemoryGitAuthorStore.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/InMemoryGitAuthorStore.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitAuthorConfig import com.ahmadkharfan.androidstudiolite.domain.repository.GitAuthorStore diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitBranchEngine.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitBranchEngine.kt similarity index 97% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitBranchEngine.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitBranchEngine.kt index 9c5a965d..06257916 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitBranchEngine.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitBranchEngine.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitBranch import com.ahmadkharfan.androidstudiolite.domain.model.GitException diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitDiffReader.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitDiffReader.kt similarity index 99% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitDiffReader.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitDiffReader.kt index bbc97d83..7eeee9c7 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitDiffReader.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitDiffReader.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitDiffHunk import com.ahmadkharfan.androidstudiolite.domain.model.GitDiffKind diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitExceptionMapper.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitExceptionMapper.kt similarity index 95% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitExceptionMapper.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitExceptionMapper.kt index fc56df84..d7d2baba 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitExceptionMapper.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitExceptionMapper.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitException import org.eclipse.jgit.api.errors.TransportException diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepository.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepository.kt similarity index 99% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepository.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepository.kt index ee3f36a3..462bcbdf 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepository.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepository.kt @@ -1,4 +1,7 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git + +import com.ahmadkharfan.androidstudiolite.data.local.DefaultWorkspaceWriteGate +import com.ahmadkharfan.androidstudiolite.data.local.FileChangeBus import com.ahmadkharfan.androidstudiolite.domain.model.CloneProgress import com.ahmadkharfan.androidstudiolite.domain.model.CloneOptions diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitHistoryEngine.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitHistoryEngine.kt similarity index 99% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitHistoryEngine.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitHistoryEngine.kt index b386afad..246be364 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitHistoryEngine.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitHistoryEngine.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitBlameLine import com.ahmadkharfan.androidstudiolite.domain.model.GitCommitChangeType diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitIndexEditor.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitIndexEditor.kt similarity index 99% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitIndexEditor.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitIndexEditor.kt index ecafab1f..8590e13a 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitIndexEditor.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitIndexEditor.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitDiffHunk import com.ahmadkharfan.androidstudiolite.domain.model.GitDiffKind diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitIntegrationEngine.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitIntegrationEngine.kt similarity index 99% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitIntegrationEngine.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitIntegrationEngine.kt index 626f7ac3..10a1068b 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitIntegrationEngine.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitIntegrationEngine.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitConflictEntry import com.ahmadkharfan.androidstudiolite.domain.model.GitException diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitRemoteEngine.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitRemoteEngine.kt similarity index 97% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitRemoteEngine.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitRemoteEngine.kt index 49413c47..8b444de6 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitRemoteEngine.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitRemoteEngine.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitRemote import com.ahmadkharfan.androidstudiolite.domain.model.GitUpstream diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitStashEngine.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitStashEngine.kt similarity index 95% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitStashEngine.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitStashEngine.kt index 51c8294a..14ae86e1 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitStashEngine.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitStashEngine.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitStash import org.eclipse.jgit.api.Git diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitStatusComputer.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitStatusComputer.kt similarity index 99% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitStatusComputer.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitStatusComputer.kt index 2198a286..86c5862b 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitStatusComputer.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitStatusComputer.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitAheadBehind import com.ahmadkharfan.androidstudiolite.domain.model.GitConflictInfo diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitSubmoduleEngine.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitSubmoduleEngine.kt similarity index 97% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitSubmoduleEngine.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitSubmoduleEngine.kt index 3ba89c97..8ddd497d 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitSubmoduleEngine.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitSubmoduleEngine.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitSubmodule import com.ahmadkharfan.androidstudiolite.domain.model.GitSubmoduleStatus diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitSyncEngine.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitSyncEngine.kt similarity index 99% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitSyncEngine.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitSyncEngine.kt index d32a64f1..ee1e3c0b 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitSyncEngine.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitSyncEngine.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitException import com.ahmadkharfan.androidstudiolite.domain.model.GitSyncResult diff --git a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitTagEngine.kt b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitTagEngine.kt similarity index 95% rename from data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitTagEngine.kt rename to data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitTagEngine.kt index 59c5d40f..5bbda372 100644 --- a/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/local/JGitTagEngine.kt +++ b/data/git/src/main/java/com/ahmadkharfan/androidstudiolite/data/git/JGitTagEngine.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitAuthorConfig import com.ahmadkharfan.androidstudiolite.domain.model.GitException diff --git a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/GitOperationCoordinatorTest.kt b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/GitOperationCoordinatorTest.kt similarity index 98% rename from data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/GitOperationCoordinatorTest.kt rename to data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/GitOperationCoordinatorTest.kt index efcbd917..159e04ef 100644 --- a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/GitOperationCoordinatorTest.kt +++ b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/GitOperationCoordinatorTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitOperationType import java.io.File diff --git a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/GitRefreshPipelineTest.kt b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/GitRefreshPipelineTest.kt similarity index 96% rename from data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/GitRefreshPipelineTest.kt rename to data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/GitRefreshPipelineTest.kt index 376bc07f..7ba30dba 100644 --- a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/GitRefreshPipelineTest.kt +++ b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/GitRefreshPipelineTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlin.time.Duration.Companion.milliseconds diff --git a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/GitUrlRedactorTest.kt b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/GitUrlRedactorTest.kt similarity index 96% rename from data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/GitUrlRedactorTest.kt rename to data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/GitUrlRedactorTest.kt index 5936b283..55319887 100644 --- a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/GitUrlRedactorTest.kt +++ b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/GitUrlRedactorTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitException import org.eclipse.jgit.api.errors.TransportException diff --git a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitForceWithLeaseTest.kt b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitForceWithLeaseTest.kt similarity index 98% rename from data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitForceWithLeaseTest.kt rename to data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitForceWithLeaseTest.kt index 19ce0356..2f3e7a91 100644 --- a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitForceWithLeaseTest.kt +++ b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitForceWithLeaseTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitCredentials import com.ahmadkharfan.androidstudiolite.domain.model.GitException diff --git a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepositoryOpsTest.kt b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepositoryOpsTest.kt similarity index 99% rename from data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepositoryOpsTest.kt rename to data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepositoryOpsTest.kt index 2107b5e7..72d0445b 100644 --- a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepositoryOpsTest.kt +++ b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepositoryOpsTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitCredentials import com.ahmadkharfan.androidstudiolite.domain.model.GitIntegrationStatus diff --git a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepositorySyncTest.kt b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepositorySyncTest.kt similarity index 98% rename from data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepositorySyncTest.kt rename to data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepositorySyncTest.kt index 5c253d9e..b5e83be0 100644 --- a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepositorySyncTest.kt +++ b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepositorySyncTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitCredentials import com.ahmadkharfan.androidstudiolite.domain.model.PullMode diff --git a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepositoryTest.kt b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepositoryTest.kt similarity index 99% rename from data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepositoryTest.kt rename to data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepositoryTest.kt index eae6e7db..94aad50f 100644 --- a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitGitRepositoryTest.kt +++ b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitGitRepositoryTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.CloneOptions import com.ahmadkharfan.androidstudiolite.domain.model.GitCredentials diff --git a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitStatusComputerTest.kt b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitStatusComputerTest.kt similarity index 99% rename from data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitStatusComputerTest.kt rename to data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitStatusComputerTest.kt index 1bbec6e2..b5e54423 100644 --- a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/JGitStatusComputerTest.kt +++ b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/JGitStatusComputerTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitCredentials import com.ahmadkharfan.androidstudiolite.domain.model.GitConflictStage diff --git a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/PartialStagingTest.kt b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/PartialStagingTest.kt similarity index 99% rename from data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/PartialStagingTest.kt rename to data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/PartialStagingTest.kt index b502f030..9a857be6 100644 --- a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/local/PartialStagingTest.kt +++ b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/data/git/PartialStagingTest.kt @@ -1,4 +1,4 @@ -package com.ahmadkharfan.androidstudiolite.data.local +package com.ahmadkharfan.androidstudiolite.data.git import com.ahmadkharfan.androidstudiolite.domain.model.GitCredentials import com.ahmadkharfan.androidstudiolite.domain.model.GitDiffHunk diff --git a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/domain/usecase/CloneProjectUseCaseTest.kt b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/domain/usecase/CloneProjectUseCaseTest.kt index fd451f49..4f65f11e 100644 --- a/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/domain/usecase/CloneProjectUseCaseTest.kt +++ b/data/git/src/test/java/com/ahmadkharfan/androidstudiolite/domain/usecase/CloneProjectUseCaseTest.kt @@ -5,7 +5,7 @@ import androidx.datastore.preferences.core.PreferenceDataStoreFactory import androidx.datastore.preferences.core.Preferences import com.ahmadkharfan.androidstudiolite.data.local.AndroidProjectRepository import com.ahmadkharfan.androidstudiolite.data.local.FileChangeBus -import com.ahmadkharfan.androidstudiolite.data.local.JGitGitRepository +import com.ahmadkharfan.androidstudiolite.data.git.JGitGitRepository import com.ahmadkharfan.androidstudiolite.domain.model.CloneOptions import com.ahmadkharfan.androidstudiolite.domain.model.GitCredentials import com.ahmadkharfan.androidstudiolite.domain.model.Project