diff options
| author | Harsh Shandilya <me@msfjarvis.dev> | 2021-03-09 14:53:11 +0530 |
|---|---|---|
| committer | Harsh Shandilya <me@msfjarvis.dev> | 2021-03-18 11:40:30 +0530 |
| commit | 774fda83ac276a635e3402034b1eedbd10be916f (patch) | |
| tree | 57783a953fcd193d32f1e3dc8df26e07f03df328 /app/src/main/java/dev/msfjarvis/aps/util/extensions/AndroidExtensions.kt | |
| parent | be31ae37f443982b377d027cd613f04d0926568d (diff) | |
| download | HardenedPass-774fda83ac276a635e3402034b1eedbd10be916f.tar.gz HardenedPass-774fda83ac276a635e3402034b1eedbd10be916f.zip | |
all: reformat with ktfmt
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'app/src/main/java/dev/msfjarvis/aps/util/extensions/AndroidExtensions.kt')
| -rw-r--r-- | app/src/main/java/dev/msfjarvis/aps/util/extensions/AndroidExtensions.kt | 167 |
1 files changed, 68 insertions, 99 deletions
diff --git a/app/src/main/java/dev/msfjarvis/aps/util/extensions/AndroidExtensions.kt b/app/src/main/java/dev/msfjarvis/aps/util/extensions/AndroidExtensions.kt index e200320e..94103118 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/extensions/AndroidExtensions.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/extensions/AndroidExtensions.kt @@ -34,146 +34,115 @@ import dev.msfjarvis.aps.data.repo.PasswordRepository import dev.msfjarvis.aps.util.git.operation.GitOperation /** - * Extension function for [AlertDialog] that requests focus for the - * view whose id is [id]. Solution based on a StackOverflow - * answer: https://stackoverflow.com/a/13056259/297261 + * Extension function for [AlertDialog] that requests focus for the view whose id is [id]. Solution + * based on a StackOverflow answer: https://stackoverflow.com/a/13056259/297261 */ fun <T : View> AlertDialog.requestInputFocusOnView(@IdRes id: Int) { - setOnShowListener { - findViewById<T>(id)?.apply { - setOnFocusChangeListener { v, _ -> - v.post { - context.getSystemService<InputMethodManager>() - ?.showSoftInput(v, InputMethodManager.SHOW_IMPLICIT) - } - } - requestFocus() - } + setOnShowListener { + findViewById<T>(id)?.apply { + setOnFocusChangeListener { v, _ -> + v.post { context.getSystemService<InputMethodManager>()?.showSoftInput(v, InputMethodManager.SHOW_IMPLICIT) } + } + requestFocus() } + } } -/** - * Get an instance of [AutofillManager]. Only - * available on Android Oreo and above - */ +/** Get an instance of [AutofillManager]. Only available on Android Oreo and above */ val Context.autofillManager: AutofillManager? - @RequiresApi(Build.VERSION_CODES.O) - get() = getSystemService() + @RequiresApi(Build.VERSION_CODES.O) get() = getSystemService() -/** - * Get an instance of [ClipboardManager] - */ +/** Get an instance of [ClipboardManager] */ val Context.clipboard - get() = getSystemService<ClipboardManager>() + get() = getSystemService<ClipboardManager>() -/** - * Wrapper for [getEncryptedPrefs] to avoid open-coding the file name at - * each call site - */ +/** Wrapper for [getEncryptedPrefs] to avoid open-coding the file name at each call site */ fun Context.getEncryptedGitPrefs() = getEncryptedPrefs("git_operation") -/** - * Wrapper for [getEncryptedPrefs] to get the encrypted preference set for the HTTP - * proxy. - */ +/** Wrapper for [getEncryptedPrefs] to get the encrypted preference set for the HTTP proxy. */ fun Context.getEncryptedProxyPrefs() = getEncryptedPrefs("http_proxy") -/** - * Get an instance of [EncryptedSharedPreferences] with the given [fileName] - */ +/** Get an instance of [EncryptedSharedPreferences] with the given [fileName] */ private fun Context.getEncryptedPrefs(fileName: String): SharedPreferences { - val masterKeyAlias = MasterKey.Builder(applicationContext) - .setKeyScheme(MasterKey.KeyScheme.AES256_GCM) - .build() - return EncryptedSharedPreferences.create( - applicationContext, - fileName, - masterKeyAlias, - EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, - EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM - ) + val masterKeyAlias = MasterKey.Builder(applicationContext).setKeyScheme(MasterKey.KeyScheme.AES256_GCM).build() + return EncryptedSharedPreferences.create( + applicationContext, + fileName, + masterKeyAlias, + EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, + EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM + ) } -/** - * Get an instance of [KeyguardManager] - */ +/** Get an instance of [KeyguardManager] */ val Context.keyguardManager: KeyguardManager - get() = getSystemService()!! + get() = getSystemService()!! -/** - * Get the default [SharedPreferences] instance - */ +/** Get the default [SharedPreferences] instance */ val Context.sharedPrefs: SharedPreferences - get() = PreferenceManager.getDefaultSharedPreferences(applicationContext) - + get() = PreferenceManager.getDefaultSharedPreferences(applicationContext) -/** - * Resolve [attr] from the [Context]'s theme - */ +/** Resolve [attr] from the [Context]'s theme */ fun Context.resolveAttribute(attr: Int): Int { - val typedValue = TypedValue() - this.theme.resolveAttribute(attr, typedValue, true) - return typedValue.data + val typedValue = TypedValue() + this.theme.resolveAttribute(attr, typedValue, true) + return typedValue.data } /** - * Commit changes to the store from a [FragmentActivity] using - * a custom implementation of [GitOperation] + * Commit changes to the store from a [FragmentActivity] using a custom implementation of + * [GitOperation] */ suspend fun FragmentActivity.commitChange( - message: String, + message: String, ): Result<Unit, Throwable> { - if (!PasswordRepository.isGitRepo()) { - return Ok(Unit) - } - return object : GitOperation(this@commitChange) { - override val commands = arrayOf( - // Stage all files - git.add().addFilepattern("."), - // Populate the changed files count - git.status(), - // Commit everything! If anything changed, that is. - git.commit().setAll(true).setMessage(message), + if (!PasswordRepository.isGitRepo()) { + return Ok(Unit) + } + return object : GitOperation(this@commitChange) { + override val commands = + arrayOf( + // Stage all files + git.add().addFilepattern("."), + // Populate the changed files count + git.status(), + // Commit everything! If anything changed, that is. + git.commit().setAll(true).setMessage(message), ) - override fun preExecute(): Boolean { - d { "Committing with message: '$message'" } - return true - } - }.execute() + override fun preExecute(): Boolean { + d { "Committing with message: '$message'" } + return true + } + } + .execute() } -/** - * Check if [permission] has been granted to the app. - */ +/** Check if [permission] has been granted to the app. */ fun FragmentActivity.isPermissionGranted(permission: String): Boolean { - return ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED + return ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED } /** - * Show a [Snackbar] in a [FragmentActivity] and correctly - * anchor it to a [com.google.android.material.floatingactionbutton.FloatingActionButton] - * if one exists in the [view] + * Show a [Snackbar] in a [FragmentActivity] and correctly anchor it to a + * [com.google.android.material.floatingactionbutton.FloatingActionButton] if one exists in the + * [view] */ fun FragmentActivity.snackbar( - view: View = findViewById(android.R.id.content), - message: String, - length: Int = Snackbar.LENGTH_SHORT, + view: View = findViewById(android.R.id.content), + message: String, + length: Int = Snackbar.LENGTH_SHORT, ): Snackbar { - val snackbar = Snackbar.make(view, message, length) - snackbar.anchorView = findViewById(R.id.fab) - snackbar.show() - return snackbar + val snackbar = Snackbar.make(view, message, length) + snackbar.anchorView = findViewById(R.id.fab) + snackbar.show() + return snackbar } -/** - * Simplifies the common `getString(key, null) ?: defaultValue` case slightly - */ +/** Simplifies the common `getString(key, null) ?: defaultValue` case slightly */ fun SharedPreferences.getString(key: String): String? = getString(key, null) -/** - * Convert this [String] to its [Base64] representation - */ +/** Convert this [String] to its [Base64] representation */ fun String.base64(): String { - return Base64.encodeToString(encodeToByteArray(), Base64.NO_WRAP) + return Base64.encodeToString(encodeToByteArray(), Base64.NO_WRAP) } |
