aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/injection/context/ContextModule.kt2
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/injection/context/FilesDirPath.kt4
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/injection/prefs/GitPreferences.kt4
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/injection/prefs/PreferenceModule.kt7
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/injection/prefs/ProxyPreferences.kt4
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/injection/prefs/SettingsPreferences.kt4
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/ui/passwords/PasswordStore.kt1
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt7
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/util/git/GitCommandExecutor.kt6
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt10
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/util/settings/GitSettings.kt11
-rw-r--r--app/src/test/java/dev/msfjarvis/aps/util/settings/MigrationsTest.kt39
12 files changed, 61 insertions, 38 deletions
diff --git a/app/src/main/java/dev/msfjarvis/aps/injection/context/ContextModule.kt b/app/src/main/java/dev/msfjarvis/aps/injection/context/ContextModule.kt
index cdb0f9f1..6399781e 100644
--- a/app/src/main/java/dev/msfjarvis/aps/injection/context/ContextModule.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/injection/context/ContextModule.kt
@@ -16,4 +16,4 @@ class ContextModule {
fun providesFilesDirPath(@ApplicationContext context: Context): String {
return context.filesDir.path
}
-} \ No newline at end of file
+}
diff --git a/app/src/main/java/dev/msfjarvis/aps/injection/context/FilesDirPath.kt b/app/src/main/java/dev/msfjarvis/aps/injection/context/FilesDirPath.kt
index 8bced295..ec747bfe 100644
--- a/app/src/main/java/dev/msfjarvis/aps/injection/context/FilesDirPath.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/injection/context/FilesDirPath.kt
@@ -2,6 +2,4 @@ package dev.msfjarvis.aps.injection.context
import javax.inject.Qualifier
-@Qualifier
-@Retention(AnnotationRetention.RUNTIME)
-annotation class FilesDirPath \ No newline at end of file
+@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class FilesDirPath
diff --git a/app/src/main/java/dev/msfjarvis/aps/injection/prefs/GitPreferences.kt b/app/src/main/java/dev/msfjarvis/aps/injection/prefs/GitPreferences.kt
index c07bc65e..749eea48 100644
--- a/app/src/main/java/dev/msfjarvis/aps/injection/prefs/GitPreferences.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/injection/prefs/GitPreferences.kt
@@ -2,6 +2,4 @@ package dev.msfjarvis.aps.injection.prefs
import javax.inject.Qualifier
-@Qualifier
-@Retention(AnnotationRetention.RUNTIME)
-annotation class GitPreferences \ No newline at end of file
+@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class GitPreferences
diff --git a/app/src/main/java/dev/msfjarvis/aps/injection/prefs/PreferenceModule.kt b/app/src/main/java/dev/msfjarvis/aps/injection/prefs/PreferenceModule.kt
index 41d2a30b..537ee1ad 100644
--- a/app/src/main/java/dev/msfjarvis/aps/injection/prefs/PreferenceModule.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/injection/prefs/PreferenceModule.kt
@@ -17,7 +17,10 @@ import dev.msfjarvis.aps.BuildConfig
@InstallIn(SingletonComponent::class)
class PreferenceModule {
- private fun provideBaseEncryptedPreferences(context: Context, fileName: String): SharedPreferences {
+ private fun provideBaseEncryptedPreferences(
+ context: Context,
+ fileName: String
+ ): SharedPreferences {
val masterKeyAlias =
MasterKey.Builder(context).setKeyScheme(MasterKey.KeyScheme.AES256_GCM).build()
return EncryptedSharedPreferences.create(
@@ -49,4 +52,4 @@ class PreferenceModule {
fun provideProxyPreferences(@ApplicationContext context: Context): SharedPreferences {
return provideBaseEncryptedPreferences(context, "http_proxy")
}
-} \ No newline at end of file
+}
diff --git a/app/src/main/java/dev/msfjarvis/aps/injection/prefs/ProxyPreferences.kt b/app/src/main/java/dev/msfjarvis/aps/injection/prefs/ProxyPreferences.kt
index c0b43088..786087ad 100644
--- a/app/src/main/java/dev/msfjarvis/aps/injection/prefs/ProxyPreferences.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/injection/prefs/ProxyPreferences.kt
@@ -2,6 +2,4 @@ package dev.msfjarvis.aps.injection.prefs
import javax.inject.Qualifier
-@Qualifier
-@Retention(AnnotationRetention.RUNTIME)
-annotation class ProxyPreferences \ No newline at end of file
+@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class ProxyPreferences
diff --git a/app/src/main/java/dev/msfjarvis/aps/injection/prefs/SettingsPreferences.kt b/app/src/main/java/dev/msfjarvis/aps/injection/prefs/SettingsPreferences.kt
index 7bd1f9b9..7bca03c8 100644
--- a/app/src/main/java/dev/msfjarvis/aps/injection/prefs/SettingsPreferences.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/injection/prefs/SettingsPreferences.kt
@@ -2,6 +2,4 @@ package dev.msfjarvis.aps.injection.prefs
import javax.inject.Qualifier
-@Qualifier
-@Retention(AnnotationRetention.RUNTIME)
-annotation class SettingsPreferences \ No newline at end of file
+@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class SettingsPreferences
diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/passwords/PasswordStore.kt b/app/src/main/java/dev/msfjarvis/aps/ui/passwords/PasswordStore.kt
index d2f6ca38..892289af 100644
--- a/app/src/main/java/dev/msfjarvis/aps/ui/passwords/PasswordStore.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/ui/passwords/PasswordStore.kt
@@ -57,7 +57,6 @@ import dev.msfjarvis.aps.util.extensions.listFilesRecursively
import dev.msfjarvis.aps.util.extensions.requestInputFocusOnView
import dev.msfjarvis.aps.util.extensions.sharedPrefs
import dev.msfjarvis.aps.util.settings.AuthMode
-import dev.msfjarvis.aps.util.settings.GitSettings
import dev.msfjarvis.aps.util.settings.PreferenceKeys
import dev.msfjarvis.aps.util.shortcuts.ShortcutHandler
import dev.msfjarvis.aps.util.viewmodel.SearchableRepositoryViewModel
diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt b/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt
index a9055408..86b57533 100644
--- a/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt
@@ -42,11 +42,14 @@ import dev.msfjarvis.aps.util.settings.PreferenceKeys
class RepositorySettings(private val activity: FragmentActivity) : SettingsProvider {
- private val hiltEntryPoint = EntryPointAccessors.fromApplication(activity.applicationContext, RepositorySettingsEntryPoint::class.java)
+ private val hiltEntryPoint =
+ EntryPointAccessors.fromApplication(
+ activity.applicationContext,
+ RepositorySettingsEntryPoint::class.java,
+ )
private val encryptedPreferences = hiltEntryPoint.encryptedPreferences()
private val gitSettings = hiltEntryPoint.gitSettings()
-
private fun <T : FragmentActivity> launchActivity(clazz: Class<T>) {
activity.startActivity(Intent(activity, clazz))
}
diff --git a/app/src/main/java/dev/msfjarvis/aps/util/git/GitCommandExecutor.kt b/app/src/main/java/dev/msfjarvis/aps/util/git/GitCommandExecutor.kt
index 5d507dc8..be0527a2 100644
--- a/app/src/main/java/dev/msfjarvis/aps/util/git/GitCommandExecutor.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/util/git/GitCommandExecutor.kt
@@ -34,7 +34,11 @@ class GitCommandExecutor(
private val operation: GitOperation,
) {
- private val hiltEntryPoint = EntryPointAccessors.fromApplication(activity.applicationContext, GitCommandExecutorEntryPoint::class.java)
+ private val hiltEntryPoint =
+ EntryPointAccessors.fromApplication(
+ activity.applicationContext,
+ GitCommandExecutorEntryPoint::class.java
+ )
private val gitSettings = hiltEntryPoint.gitSettings()
suspend fun execute(): Result<Unit, Throwable> {
diff --git a/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt b/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt
index 5a9da290..9d296353 100644
--- a/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt
@@ -16,7 +16,6 @@ import com.github.michaelbull.result.runCatching
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.EntryPoint
import dagger.hilt.InstallIn
-import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.EntryPointAccessors
import dagger.hilt.components.SingletonComponent
import dev.msfjarvis.aps.R
@@ -31,8 +30,6 @@ import dev.msfjarvis.aps.util.git.sshj.SshKey
import dev.msfjarvis.aps.util.git.sshj.SshjSessionFactory
import dev.msfjarvis.aps.util.settings.AuthMode
import dev.msfjarvis.aps.util.settings.GitSettings
-import javax.inject.Inject
-import javax.inject.Singleton
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
import kotlinx.coroutines.Dispatchers
@@ -60,7 +57,11 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) {
abstract val commands: Array<GitCommand<out Any>>
private val hostKeyFile = callingActivity.filesDir.resolve(".host_key")
private var sshSessionFactory: SshjSessionFactory? = null
- private val hiltEntryPoint = EntryPointAccessors.fromApplication(callingActivity.applicationContext, GitOperationEntryPoint::class.java)
+ private val hiltEntryPoint =
+ EntryPointAccessors.fromApplication(
+ callingActivity.applicationContext,
+ GitOperationEntryPoint::class.java
+ )
protected val repository = PasswordRepository.getRepository(null)!!
protected val git = Git(repository)
@@ -229,7 +230,6 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) {
private const val CONNECT_TIMEOUT = 10
}
- // Using @EntryPoint seems to be our best option here, changing this to constructor injection would require a larger refactor.
@EntryPoint
@InstallIn(SingletonComponent::class)
interface GitOperationEntryPoint {
diff --git a/app/src/main/java/dev/msfjarvis/aps/util/settings/GitSettings.kt b/app/src/main/java/dev/msfjarvis/aps/util/settings/GitSettings.kt
index 0d580142..50b6cbfe 100644
--- a/app/src/main/java/dev/msfjarvis/aps/util/settings/GitSettings.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/util/settings/GitSettings.kt
@@ -52,16 +52,16 @@ enum class AuthMode(val pref: String) {
}
@Singleton
-class GitSettings @Inject constructor(
+class GitSettings
+@Inject
+constructor(
@SettingsPreferences private val settings: SharedPreferences,
@GitPreferences private val encryptedSettings: SharedPreferences,
@ProxyPreferences private val proxySettings: SharedPreferences,
@FilesDirPath private val filesDirPath: String,
) {
- private val hostKeyPath by lazy(LazyThreadSafetyMode.NONE) {
- "$filesDirPath/.host_key"
- }
+ private val hostKeyPath by lazy(LazyThreadSafetyMode.NONE) { "$filesDirPath/.host_key" }
var authMode
get() = AuthMode.fromString(settings.getString(PreferenceKeys.GIT_REMOTE_AUTH))
private set(value) {
@@ -128,7 +128,8 @@ class GitSettings @Inject constructor(
sealed class UpdateConnectionSettingsResult {
class MissingUsername(val newProtocol: Protocol) : UpdateConnectionSettingsResult()
- class AuthModeMismatch(val newProtocol: Protocol, val validModes: List<AuthMode>) : UpdateConnectionSettingsResult()
+ class AuthModeMismatch(val newProtocol: Protocol, val validModes: List<AuthMode>) :
+ UpdateConnectionSettingsResult()
object Valid : UpdateConnectionSettingsResult()
object FailedToParseUrl : UpdateConnectionSettingsResult()
}
diff --git a/app/src/test/java/dev/msfjarvis/aps/util/settings/MigrationsTest.kt b/app/src/test/java/dev/msfjarvis/aps/util/settings/MigrationsTest.kt
index 520d51ac..71f457ec 100644
--- a/app/src/test/java/dev/msfjarvis/aps/util/settings/MigrationsTest.kt
+++ b/app/src/test/java/dev/msfjarvis/aps/util/settings/MigrationsTest.kt
@@ -59,7 +59,11 @@ class MigrationsTest {
putString(PreferenceKeys.GIT_REMOTE_PROTOCOL, Protocol.Ssh.pref)
putString(PreferenceKeys.GIT_REMOTE_AUTH, AuthMode.Password.pref)
}
- runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
+ runMigrations(
+ filesDir,
+ sharedPrefs,
+ GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir)
+ )
checkOldKeysAreRemoved()
assertEquals(
sharedPrefs.getString(PreferenceKeys.GIT_REMOTE_URL),
@@ -77,7 +81,11 @@ class MigrationsTest {
putString(PreferenceKeys.GIT_REMOTE_PROTOCOL, Protocol.Ssh.pref)
putString(PreferenceKeys.GIT_REMOTE_AUTH, AuthMode.SshKey.pref)
}
- runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
+ runMigrations(
+ filesDir,
+ sharedPrefs,
+ GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir)
+ )
checkOldKeysAreRemoved(context)
assertEquals(
sharedPrefs.getString(PreferenceKeys.GIT_REMOTE_URL),
@@ -95,7 +103,11 @@ class MigrationsTest {
putString(PreferenceKeys.GIT_REMOTE_PROTOCOL, Protocol.Https.pref)
putString(PreferenceKeys.GIT_REMOTE_AUTH, AuthMode.None.pref)
}
- runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
+ runMigrations(
+ filesDir,
+ sharedPrefs,
+ GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir)
+ )
checkOldKeysAreRemoved(context)
assertEquals(
sharedPrefs.getString(PreferenceKeys.GIT_REMOTE_URL),
@@ -106,7 +118,11 @@ class MigrationsTest {
@Test
fun verifyHiddenFoldersMigrationIfDisabled() {
sharedPrefs.edit { clear() }
- runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
+ runMigrations(
+ filesDir,
+ sharedPrefs,
+ GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir)
+ )
assertEquals(true, sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_FOLDERS, true))
assertEquals(false, sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_CONTENTS, false))
}
@@ -117,7 +133,11 @@ class MigrationsTest {
clear()
putBoolean(PreferenceKeys.SHOW_HIDDEN_FOLDERS, true)
}
- runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
+ runMigrations(
+ filesDir,
+ sharedPrefs,
+ GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir)
+ )
assertEquals(false, sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_FOLDERS, false))
assertEquals(true, sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_CONTENTS, false))
}
@@ -128,11 +148,12 @@ class MigrationsTest {
clear()
putBoolean(PreferenceKeys.CLEAR_CLIPBOARD_20X, true)
}
- runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
- assertEquals(
- true,
- sharedPrefs.getBoolean(PreferenceKeys.CLEAR_CLIPBOARD_HISTORY, false)
+ runMigrations(
+ filesDir,
+ sharedPrefs,
+ GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir)
)
+ assertEquals(true, sharedPrefs.getBoolean(PreferenceKeys.CLEAR_CLIPBOARD_HISTORY, false))
assertFalse(sharedPrefs.contains(PreferenceKeys.CLEAR_CLIPBOARD_20X))
}
}