diff --git a/app/build.gradle b/app/build.gradle index 7d7a7e4b..9956c5bb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,6 +3,7 @@ plugins { id 'kotlin-android' id 'kotlin-kapt' id 'androidx.navigation.safeargs.kotlin' +// id("com.diffplug.spotless") version "5.10.2" id("dagger.hilt.android.plugin") } diff --git a/app/production/release/app-production-release.apk b/app/production/release/app-production-release.apk new file mode 100644 index 00000000..a74b67ac Binary files /dev/null and b/app/production/release/app-production-release.apk differ diff --git a/app/production/release/output-metadata.json b/app/production/release/output-metadata.json new file mode 100644 index 00000000..ead6f27b --- /dev/null +++ b/app/production/release/output-metadata.json @@ -0,0 +1,18 @@ +{ + "version": 2, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.yogeshpaliyal.keypass", + "variantName": "processProductionReleaseResources", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "versionCode": 3, + "versionName": "1.3", + "outputFile": "app-production-release.apk" + } + ] +} \ No newline at end of file diff --git a/app/src/androidTest/java/com/yogeshpaliyal/keypass/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/yogeshpaliyal/keypass/ExampleInstrumentedTest.kt index c3442c59..e7e069e0 100644 --- a/app/src/androidTest/java/com/yogeshpaliyal/keypass/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/com/yogeshpaliyal/keypass/ExampleInstrumentedTest.kt @@ -1,13 +1,11 @@ package com.yogeshpaliyal.keypass -import androidx.test.platform.app.InstrumentationRegistry import androidx.test.ext.junit.runners.AndroidJUnit4 - +import androidx.test.platform.app.InstrumentationRegistry +import org.junit.Assert.* import org.junit.Test import org.junit.runner.RunWith -import org.junit.Assert.* - /** * Instrumented test, which will execute on an Android device. * @@ -21,4 +19,4 @@ class ExampleInstrumentedTest { val appContext = InstrumentationRegistry.getInstrumentation().targetContext assertEquals("com.yogeshpaliyal.keypass", appContext.packageName) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/AppDatabase.kt b/app/src/main/java/com/yogeshpaliyal/keypass/AppDatabase.kt index f8045cef..9ff491ae 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/AppDatabase.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/AppDatabase.kt @@ -3,7 +3,6 @@ package com.yogeshpaliyal.keypass import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase -import androidx.room.migration.Migration import androidx.sqlite.db.SupportSQLiteDatabase import com.yogeshpaliyal.keypass.data.AccountModel import com.yogeshpaliyal.keypass.db.DbDao diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/InfoModel.kt b/app/src/main/java/com/yogeshpaliyal/keypass/InfoModel.kt index a39d93e7..ee6b5ca8 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/InfoModel.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/InfoModel.kt @@ -1,15 +1,16 @@ package com.yogeshpaliyal.keypass - /* * @author Yogesh Paliyal * techpaliyal@gmail.com * https://techpaliyal.com * created on 23-01-2021 10:33 */ -data class InfoModel(var user_id: String, -var username : String, -var password : String, -var notes: String, -var insertedDate : Long, -var lastUpdatedDate : Long) +data class InfoModel( + var user_id: String, + var username: String, + var password: String, + var notes: String, + var insertedDate: Long, + var lastUpdatedDate: Long +) diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/MyApplication.kt b/app/src/main/java/com/yogeshpaliyal/keypass/MyApplication.kt index 3fc8fc51..01528bfc 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/MyApplication.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/MyApplication.kt @@ -3,7 +3,6 @@ package com.yogeshpaliyal.keypass import android.app.Application import dagger.hilt.android.HiltAndroidApp - /* * @author Yogesh Paliyal * yogeshpaliyal.foss@gmail.com @@ -13,14 +12,12 @@ import dagger.hilt.android.HiltAndroidApp @HiltAndroidApp class MyApplication : Application() { - companion object{ + companion object { lateinit var instance: MyApplication } override fun onCreate() { super.onCreate() instance = this - } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/custom_views/MaskedCardView.kt b/app/src/main/java/com/yogeshpaliyal/keypass/custom_views/MaskedCardView.kt index dbc1b839..f51bedfe 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/custom_views/MaskedCardView.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/custom_views/MaskedCardView.kt @@ -44,4 +44,4 @@ class MaskedCardView @JvmOverloads constructor( pathProvider.calculatePath(shapeAppearance, 1f, rectF, path) super.onSizeChanged(w, h, oldw, oldh) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/data/AccountModel.kt b/app/src/main/java/com/yogeshpaliyal/keypass/data/AccountModel.kt index 3a64e848..93081c87 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/data/AccountModel.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/data/AccountModel.kt @@ -6,7 +6,6 @@ import androidx.room.PrimaryKey import com.google.gson.annotations.SerializedName import com.yogeshpaliyal.universal_adapter.model.BaseDiffUtil - /* * @author Yogesh Paliyal * techpaliyal@gmail.com diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/data/BackupData.kt b/app/src/main/java/com/yogeshpaliyal/keypass/data/BackupData.kt index bd27af97..e1f78bc8 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/data/BackupData.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/data/BackupData.kt @@ -3,7 +3,6 @@ package com.yogeshpaliyal.keypass.data import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName - /* * @author Yogesh Paliyal * techpaliyal@gmail.com @@ -13,8 +12,8 @@ import com.google.gson.annotations.SerializedName data class BackupData( @SerializedName("version") @Expose - val version : Int, + val version: Int, @SerializedName("data") @Expose - val data : List ) { -} \ No newline at end of file + val data: List +) diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/db_helper/CryptoException.kt b/app/src/main/java/com/yogeshpaliyal/keypass/db_helper/CryptoException.kt index 6fa342a7..3b038865 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/db_helper/CryptoException.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/db_helper/CryptoException.kt @@ -1,6 +1,5 @@ package com.yogeshpaliyal.keypass.db_helper - /* * @author Yogesh Paliyal * techpaliyal@gmail.com diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/db_helper/EncryptionHelper.kt b/app/src/main/java/com/yogeshpaliyal/keypass/db_helper/EncryptionHelper.kt index 650df2ac..b920456c 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/db_helper/EncryptionHelper.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/db_helper/EncryptionHelper.kt @@ -1,6 +1,5 @@ package com.yogeshpaliyal.keypass.db_helper - import java.io.IOException import java.io.InputStream import java.io.OutputStream @@ -15,7 +14,6 @@ import javax.crypto.* import javax.crypto.spec.IvParameterSpec import javax.crypto.spec.SecretKeySpec - /* * @author Yogesh Paliyal * techpaliyal@gmail.com @@ -25,21 +23,20 @@ import javax.crypto.spec.SecretKeySpec */ object EncryptionHelper { private const val ALGORITHM = "AES" - private const val TRANSFORMATION = "AES/CBC/PKCS5Padding" - //private const val TRANSFORMATION = "AES" + private const val TRANSFORMATION = "AES/CBC/PKCS5Padding" + // private const val TRANSFORMATION = "AES" // private const val TRANSFORMATION = "DES/CBC/PKCS5Padding" - private val iV = byteArrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) - + private val iV = byteArrayOf(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) @Throws(CryptoException::class) fun doCryptoEncrypt( - key: String, data: String, + key: String, + data: String, outputFile: OutputStream? ) { try { - val secretKey: Key = SecretKeySpec(key.toByteArray(), ALGORITHM) val cipher = Cipher.getInstance(TRANSFORMATION) @@ -47,7 +44,7 @@ object EncryptionHelper { cipher.init(Cipher.ENCRYPT_MODE, secretKey, IvParameterSpec(iV)) data.byteInputStream().use { - val inputStream = it + val inputStream = it outputFile?.use { val outputStream = it CipherOutputStream(outputStream, cipher).use { @@ -62,7 +59,7 @@ object EncryptionHelper { // Log.d("TestingEnc","NoSuchAlgorithmException") throw CryptoException("Error encrypting/decrypting file", ex) } catch (ex: InvalidKeyException) { - //Log.d("TestingEnc","InvalidKeyException") + // Log.d("TestingEnc","InvalidKeyException") throw CryptoException("Error encrypting/decrypting file", ex) } catch (ex: BadPaddingException) { // Log.d("TestingEnc","BadPaddingException") @@ -76,11 +73,11 @@ object EncryptionHelper { } } - @Throws(CryptoException::class) fun doCryptoDecrypt( - key: String, inputFile: InputStream? - ) : String { + key: String, + inputFile: InputStream? + ): String { var data = "" try { val secretKey: Key = @@ -91,25 +88,24 @@ object EncryptionHelper { inputFile.use { val inputStream = it - CipherInputStream(inputStream, cipher).use { - data = String(it.readBytes()) - } + CipherInputStream(inputStream, cipher).use { + data = String(it.readBytes()) + } } - } catch (ex: NoSuchPaddingException) { - //Log.d("TestingEnc","NoSuchPaddingException") + // Log.d("TestingEnc","NoSuchPaddingException") throw CryptoException("Error encrypting/decrypting file", ex) } catch (ex: NoSuchAlgorithmException) { - //Log.d("TestingEnc","NoSuchAlgorithmException") + // Log.d("TestingEnc","NoSuchAlgorithmException") throw CryptoException("Error encrypting/decrypting file", ex) } catch (ex: InvalidKeyException) { - //Log.d("TestingEnc","InvalidKeyException") + // Log.d("TestingEnc","InvalidKeyException") throw CryptoException("Error encrypting/decrypting file", ex) } catch (ex: BadPaddingException) { - //Log.d("TestingEnc","BadPaddingException") + // Log.d("TestingEnc","BadPaddingException") throw CryptoException("Error encrypting/decrypting file", ex) } catch (ex: IllegalBlockSizeException) { - //Log.d("TestingEnc","IllegalBlockSizeException") + // Log.d("TestingEnc","IllegalBlockSizeException") throw CryptoException("Error encrypting/decrypting file", ex) } catch (ex: IOException) { // Log.d("TestingEnc","IOException") @@ -119,9 +115,7 @@ object EncryptionHelper { return data } - - - fun encryptPassword(message: String, password: String): String{ + fun encryptPassword(message: String, password: String): String { /* Encrypt the message. */ var cipher: Cipher? = null cipher = Cipher.getInstance("AES/ECB/PKCS5Padding") @@ -147,11 +141,8 @@ object EncryptionHelper { return String(cipher.doFinal(encryptedMessage.toByteArray())) } - @Throws(NoSuchAlgorithmException::class, InvalidKeySpecException::class) fun generateKey(passLockKey: String): SecretKey { return SecretKeySpec(passLockKey.encodeToByteArray(), "AES") } - - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/listener/UniversalClickListener.kt b/app/src/main/java/com/yogeshpaliyal/keypass/listener/UniversalClickListener.kt index b7d1c709..bee9569e 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/listener/UniversalClickListener.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/listener/UniversalClickListener.kt @@ -2,7 +2,6 @@ package com.yogeshpaliyal.keypass.listener import android.view.View - /* * @author Yogesh Paliyal * techpaliyal@gmail.com @@ -11,4 +10,4 @@ import android.view.View */ interface UniversalClickListener { fun onItemClick(view: View, model: T) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/service/BasicService.kt b/app/src/main/java/com/yogeshpaliyal/keypass/service/BasicService.kt index 78c58982..ad56b494 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/service/BasicService.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/service/BasicService.kt @@ -57,7 +57,6 @@ class BasicService : AutofillService() { return } - // Create the base response val response = FillResponse.Builder() @@ -129,8 +128,9 @@ class BasicService : AutofillService() { fields[hint] = id } else { Log.v( - TAG, "Ignoring hint '" + hint + "' on " + id - + " because it was already set" + TAG, + "Ignoring hint '" + hint + "' on " + id + + " because it was already set" ) } } @@ -173,9 +173,9 @@ class BasicService : AutofillService() { text: CharSequence ): RemoteViews { val presentation = RemoteViews(packageName, R.layout.multidataset_service_list_item) - presentation.setTextViewText(R.id.text, "paliyal"+text) + presentation.setTextViewText(R.id.text, "paliyal" + text) presentation.setImageViewResource(R.id.icon, R.mipmap.ic_launcher) return presentation } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/service/MyAutoFillService.kt b/app/src/main/java/com/yogeshpaliyal/keypass/service/MyAutoFillService.kt index 4a35bf5c..c9d07cb1 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/service/MyAutoFillService.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/service/MyAutoFillService.kt @@ -1,17 +1,10 @@ package com.yogeshpaliyal.keypass.service -import android.app.assist.AssistStructure -import android.app.assist.AssistStructure.ViewNode import android.os.Build import android.os.CancellationSignal import android.service.autofill.* -import android.view.autofill.AutofillId -import android.view.autofill.AutofillValue -import android.widget.RemoteViews -import androidx.annotation.NonNull import androidx.annotation.RequiresApi - /* * @author Yogesh Paliyal * techpaliyal@gmail.com @@ -24,21 +17,13 @@ class MyAutoFillService : AutofillService() { private val TAG = "MyAutoFillService" private val NUMBER_DATASETS = 4 - override fun onFillRequest( request: FillRequest, cancellationSignal: CancellationSignal, callback: FillCallback ) { - - } - - override fun onSaveRequest(request: SaveRequest, callback: SaveCallback) { - } - - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/DetailViewModel.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/DetailViewModel.kt index 08eeb9b5..b8d4fcc5 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/DetailViewModel.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/DetailViewModel.kt @@ -11,7 +11,6 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import javax.inject.Inject - /* * @author Yogesh Paliyal * techpaliyal@gmail.com @@ -30,8 +29,5 @@ class DetailViewModel @Inject constructor(application: Application, val appDb: A appDb.getDao().getAccount(accountId) ?: AccountModel() ) } - } - - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/BottomNavViewModel.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/BottomNavViewModel.kt index 6c1deefa..3752e7bb 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/BottomNavViewModel.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/BottomNavViewModel.kt @@ -11,7 +11,6 @@ import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch import javax.inject.Inject - /* * @author Yogesh Paliyal * techpaliyal@gmail.com @@ -23,13 +22,13 @@ class BottomNavViewModel @Inject constructor (application: Application,val appDb private val _navigationList: MutableLiveData> = MutableLiveData() private val tagsDb = appDb.getDao().getTags() - private var tagsList : List ?= null + private var tagsList: List ? = null val navigationList: LiveData> get() = _navigationList init { - postListUpdate() + postListUpdate() viewModelScope.launch { tagsDb.collect { @@ -39,8 +38,6 @@ class BottomNavViewModel @Inject constructor (application: Application,val appDb } } - - /** * Set the currently selected menu item. * @@ -59,18 +56,13 @@ class BottomNavViewModel @Inject constructor (application: Application,val appDb return updated } - private fun postListUpdate() { - val newList = if(tagsList.isNullOrEmpty().not()){ + val newList = if (tagsList.isNullOrEmpty().not()) { NavigationModel.navigationMenuItems + NavigationModelItem.NavDivider("Tags") + (tagsList?.filter { it != null }?.map { NavigationModelItem.NavEmailFolder(it) } ?: listOf()) - }else{ + } else { NavigationModel.navigationMenuItems } - _navigationList.value = newList - - - } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/BottomNavigationDrawerCallback.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/BottomNavigationDrawerCallback.kt index 7fceb6a4..c3aad646 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/BottomNavigationDrawerCallback.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/BottomNavigationDrawerCallback.kt @@ -97,4 +97,4 @@ class BottomNavigationDrawerCallback : BottomSheetBehavior.BottomSheetCallback() fun removeOnStateChangedAction(action: OnStateChangedAction): Boolean { return onStateChangedActions.remove(action) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationAdapter.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationAdapter.kt index 494696ae..8066894d 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationAdapter.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationAdapter.kt @@ -86,4 +86,4 @@ class NavigationAdapter( ) { holder.bind(getItem(position)) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationModel.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationModel.kt index 4a607a15..e2c6f86c 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationModel.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationModel.kt @@ -1,7 +1,5 @@ package com.yogeshpaliyal.keypass.ui.nav -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData import com.yogeshpaliyal.keypass.R /** @@ -12,7 +10,6 @@ object NavigationModel { const val HOME = 0 const val GENERATE_PASSWORD = 1 - var navigationMenuItems = mutableListOf( NavigationModelItem.NavMenuItem( id = HOME, @@ -27,11 +24,4 @@ object NavigationModel { checked = false, ) ) - - - - - - } - diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationModelItem.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationModelItem.kt index 28112a0c..69d5cc6e 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationModelItem.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationModelItem.kt @@ -50,14 +50,14 @@ sealed class NavigationModelItem { newItem: NavigationModelItem ): Boolean { return when { - oldItem is NavMenuItem && newItem is NavMenuItem -> - oldItem.icon == newItem.icon && - oldItem.titleRes == newItem.titleRes && - oldItem.checked == newItem.checked + oldItem is NavMenuItem && newItem is NavMenuItem -> + oldItem.icon == newItem.icon && + oldItem.titleRes == newItem.titleRes && + oldItem.checked == newItem.checked oldItem is NavEmailFolder && newItem is NavEmailFolder -> StringDiffUtil.areContentsTheSame(oldItem.category, newItem.category) else -> false } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationViewHolder.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationViewHolder.kt index 97c482ff..5888d5f5 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationViewHolder.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/nav/NavigationViewHolder.kt @@ -1,6 +1,5 @@ package com.yogeshpaliyal.keypass.ui.nav - import android.view.View import androidx.recyclerview.widget.RecyclerView import com.yogeshpaliyal.keypass.databinding.NavDividerItemLayoutBinding @@ -11,7 +10,7 @@ sealed class NavigationViewHolder( view: View ) : RecyclerView.ViewHolder(view) { - abstract fun bind(navItem : T) + abstract fun bind(navItem: T) class NavMenuItemViewHolder( private val binding: NavMenuItemLayoutBinding, @@ -49,4 +48,4 @@ sealed class NavigationViewHolder( } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/AnimationUtils.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/AnimationUtils.kt index 8fdf6a12..6431e05b 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/AnimationUtils.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/AnimationUtils.kt @@ -132,4 +132,4 @@ fun Float.normalize( return outputMin * (1 - (this - inputMin) / (inputMax - inputMin)) + outputMax * ((this - inputMin) / (inputMax - inputMin)) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/AutoFillHelper.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/AutoFillHelper.kt index a4cc0959..d8d05e6d 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/AutoFillHelper.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/AutoFillHelper.kt @@ -4,7 +4,6 @@ import android.content.Context import android.view.autofill.AutofillManager import androidx.core.content.ContextCompat.getSystemService - /* * @author Yogesh Paliyal * techpaliyal@gmail.com @@ -12,9 +11,8 @@ import androidx.core.content.ContextCompat.getSystemService * created on 31-01-2021 15:27 */ - - fun Context?.getAutoFillService() = if (this != null && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { - getSystemService(this, AutofillManager::class.java) - } else { - null - } \ No newline at end of file +fun Context?.getAutoFillService() = if (this != null && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + getSystemService(this, AutofillManager::class.java) +} else { + null +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/BindingAdapter.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/BindingAdapter.kt index 4be29564..f8ae92fb 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/BindingAdapter.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/BindingAdapter.kt @@ -15,31 +15,29 @@ package com.yogeshpaliyal.keypass.utils -import android.content.Context import android.graphics.drawable.ColorDrawable -import android.graphics.drawable.Drawable import android.view.View import android.view.View.GONE import android.view.View.VISIBLE import android.view.ViewGroup import android.view.WindowInsets -import android.widget.ImageView import android.widget.Spinner import android.widget.TextView import androidx.annotation.DrawableRes import androidx.core.view.updateLayoutParams import androidx.databinding.BindingAdapter -import com.google.android.material.chip.Chip import com.google.android.material.elevation.ElevationOverlayProvider @BindingAdapter( "popupElevationOverlay" ) fun Spinner.bindPopupElevationOverlay(popupElevationOverlay: Float) { - setPopupBackgroundDrawable(ColorDrawable( - ElevationOverlayProvider(context) - .compositeOverlayWithThemeSurfaceColorIfNeeded(popupElevationOverlay) - )) + setPopupBackgroundDrawable( + ColorDrawable( + ElevationOverlayProvider(context) + .compositeOverlayWithThemeSurfaceColorIfNeeded(popupElevationOverlay) + ) + ) } @BindingAdapter( @@ -67,8 +65,6 @@ fun TextView.bindDrawables( ) } - - @BindingAdapter("goneIf") fun View.bindGoneIf(gone: Boolean) { visibility = if (gone) { @@ -219,4 +215,4 @@ fun View.requestApplyInsetsWhenAttached() { override fun onViewDetachedFromWindow(v: View) = Unit }) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/ContentViewBindingDelegate.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/ContentViewBindingDelegate.kt index 6979aade..50683006 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/ContentViewBindingDelegate.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/ContentViewBindingDelegate.kt @@ -16,7 +16,6 @@ package com.yogeshpaliyal.keypass.utils - import android.app.Activity import androidx.annotation.LayoutRes import androidx.appcompat.app.AppCompatActivity @@ -46,4 +45,4 @@ class ContentViewBindingDelegate contentView( @LayoutRes layoutRes: Int -): ContentViewBindingDelegate = ContentViewBindingDelegate(layoutRes) \ No newline at end of file +): ContentViewBindingDelegate = ContentViewBindingDelegate(layoutRes) diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/ContextExtensions.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/ContextExtensions.kt index 2b039558..2fa3f87a 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/ContextExtensions.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/ContextExtensions.kt @@ -67,4 +67,4 @@ fun Context.themeInterpolator(@AttrRes attr: Int): Interpolator { fun Context.getDrawableOrNull(@DrawableRes id: Int?): Drawable? { return if (id == null || id == 0) null else AppCompatResources.getDrawable(this, id) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/LogHelper.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/LogHelper.kt index d3ea5b21..de81c79f 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/LogHelper.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/LogHelper.kt @@ -3,7 +3,6 @@ package com.yogeshpaliyal.keypass.utils import android.util.Log import com.yogeshpaliyal.keypass.BuildConfig - /* * @author Yogesh Paliyal * techpaliyal@gmail.com @@ -47,4 +46,4 @@ fun Any?.logV(tag: String?) { fun Any?.logW(tag: String?) { if (BuildConfig.DEBUG) Log.w(tag, this.toString()) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/PasswordGenerator.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/PasswordGenerator.kt index 8da2f4e2..d25e9346 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/PasswordGenerator.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/PasswordGenerator.kt @@ -1,8 +1,12 @@ package com.yogeshpaliyal.keypass.utils -class PasswordGenerator(private var length: Int, private var includeUpperCaseLetters : Boolean, - private var includeLowerCaseLetters : Boolean, - private var includeSymbols : Boolean, private var includeNumbers: Boolean) { +class PasswordGenerator( + private var length: Int, + private var includeUpperCaseLetters: Boolean, + private var includeLowerCaseLetters: Boolean, + private var includeSymbols: Boolean, + private var includeNumbers: Boolean +) { constructor() : this(10,true, true, true, true) @@ -11,27 +15,27 @@ class PasswordGenerator(private var length: Int, private var includeUpperCaseLet private val NUMBERS = 2 private val SYMBOLS = 3 - public fun generatePassword() : String { + public fun generatePassword(): String { var password = "" - val list = ArrayList() - if(includeUpperCaseLetters) + val list = ArrayList() + if (includeUpperCaseLetters) list.add(UPPER_CASE) - if(includeLowerCaseLetters) + if (includeLowerCaseLetters) list.add(LOWER_CASE) - if(includeNumbers) + if (includeNumbers) list.add(NUMBERS) - if(includeSymbols) + if (includeSymbols) list.add(SYMBOLS) - for(i in 1..length){ + for (i in 1..length) { val choice = list.random() - when(choice){ + when (choice) { UPPER_CASE -> password += ('A'..'Z').random().toString() LOWER_CASE -> password += ('a'..'z').random().toString() NUMBERS -> password += ('0'..'9').random().toString() - SYMBOLS -> password += listOf('!','@','#','$','%','&','*','+','=','-','~','?','/','_').random().toString() + SYMBOLS -> password += listOf('!', '@', '#', '$', '%', '&', '*', '+', '=', '-', '~', '?', '/', '_').random().toString() } } return password } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/StringHelper.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/StringHelper.kt index fb632afc..745297c4 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/StringHelper.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/StringHelper.kt @@ -2,7 +2,6 @@ package com.yogeshpaliyal.keypass.utils import java.util.* - /* * @author Yogesh Paliyal * techpaliyal@gmail.com @@ -10,4 +9,4 @@ import java.util.* * created on 22-01-2021 23:14 */ -fun getRandomString()= UUID.randomUUID().toString() +fun getRandomString() = UUID.randomUUID().toString() diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/ViewExtensions.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/ViewExtensions.kt index dc6e8748..63d66b53 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/ViewExtensions.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/ViewExtensions.kt @@ -17,19 +17,8 @@ package com.yogeshpaliyal.keypass.utils import android.content.Context -import android.graphics.Bitmap -import android.graphics.Bitmap.Config.ARGB_8888 -import android.graphics.drawable.ColorDrawable import android.os.Build -import android.view.View -import android.view.ViewGroup import android.widget.TextView -import androidx.annotation.ColorInt -import androidx.annotation.IdRes -import androidx.annotation.Px -import androidx.core.graphics.applyCanvas -import androidx.core.view.ViewCompat -import androidx.core.view.forEach @Suppress("DEPRECATION") fun TextView.setTextAppearanceCompat(context: Context, resId: Int) { diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/ViewModelFactory.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/ViewModelFactory.kt index 11c655a5..b3fb35ac 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/ViewModelFactory.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/ViewModelFactory.kt @@ -32,4 +32,3 @@ fun ViewModelStoreOwner.initViewModel(viewModel: Class): T = this, ViewModelFactory() ).get(viewModel) - diff --git a/app/src/test/java/com/yogeshpaliyal/keypass/ExampleUnitTest.kt b/app/src/test/java/com/yogeshpaliyal/keypass/ExampleUnitTest.kt index 43004097..5ef08375 100644 --- a/app/src/test/java/com/yogeshpaliyal/keypass/ExampleUnitTest.kt +++ b/app/src/test/java/com/yogeshpaliyal/keypass/ExampleUnitTest.kt @@ -1,8 +1,7 @@ package com.yogeshpaliyal.keypass -import org.junit.Test - import org.junit.Assert.* +import org.junit.Test /** * Example local unit test, which will execute on the development machine (host). @@ -14,4 +13,4 @@ class ExampleUnitTest { fun addition_isCorrect() { assertEquals(4, 2 + 2) } -} \ No newline at end of file +} diff --git a/build.gradle b/build.gradle index 744af68f..7d4e2d7a 100644 --- a/build.gradle +++ b/build.gradle @@ -27,6 +27,9 @@ buildscript { // in the individual module build.gradle files } } +plugins { + id 'com.diffplug.spotless' version '5.10.2' +} allprojects { repositories { @@ -37,6 +40,30 @@ allprojects { } } -task clean(type: Delete) { +/*task clean(type: Delete) { delete rootProject.buildDir +}*/ + + + +subprojects { + repositories { + google() + jcenter() + maven { url 'https://jitpack.io' } + } + + apply plugin: 'com.diffplug.spotless' + spotless { + kotlin { + target '**/*.kt' + targetExclude("$buildDir/**/*.kt") + targetExclude('bin/**/*.kt') + + java.util.HashMap map = new HashMap<>(); + map.put("disabled_rules","no-wildcard-imports") + ktlint("0.40.0").userData(map) + // licenseHeaderFile rootProject.file('spotless/copyright.kt') + } + } } \ No newline at end of file