Skip to content

Instantly share code, notes, and snippets.

View DjangoLC's full-sized avatar
🏠
Working from home

Enrique Perez DjangoLC

🏠
Working from home
View GitHub Profile
@DjangoLC
DjangoLC / Challange.kt
Created November 10, 2023 22:17
solution
package basics
fun main() {
val str ="no todos los carros son azules todos los carros son azules lo sabias sabias"
findRepeatedWords(str)
}
fun findRepeatedWords(str: String) {
val split = str.split(" ")
val map = mutableMapOf<String, Int>()
package com.kavak.android.kavakops.modules.home.viewModel
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import com.kavak.android.content_data.repository.PostalCodesRepo
import com.kavak.android.content_domain.ColonyData
import com.kavak.android.content_usecases.zipCodesAndColonies.GetColoniesByPostalCodeUseCase
import com.kavak.android.kavakops.providers.SchedulerProvider
import com.kavak.android.kavakops.utils.LiveDataTestUtil
import io.reactivex.Single
import io.reactivex.observers.TestObserver
@DjangoLC
DjangoLC / BaseFullFragment.kt
Created June 14, 2021 06:46
DialogFullScreen
abstract class BaseFullFragment: DialogFragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setStyle(STYLE_NORMAL, R.style.AppTheme)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@DjangoLC
DjangoLC / RemoteDataSourceImpl.kt
Created March 18, 2021 16:24
implementation of firestore with clean
class RemoteDataSourceImpl : RemoteDataSource {
private val db = FirebaseFirestore.getInstance().apply {
this.firestoreSettings = FirebaseFirestoreSettings
.Builder()
.setPersistenceEnabled(true)
.build()
}
companion object {
@DjangoLC
DjangoLC / StringUtils.kt
Created March 17, 2021 01:15
md5 method kotlin
fun md5(input:String): String {
val md = MessageDigest.getInstance("MD5")
return BigInteger(1, md.digest(input.toByteArray())).toString(16).padStart(32, '0')
}
@DjangoLC
DjangoLC / Aes256.kt
Created January 12, 2021 21:40
Aes Util fo rencrypt to aes 256
object Aes256 {
private fun cipher(operationMode: Int, secretKey: String = BuildConfig.KEY_ENCRYPT): Cipher {
if (secretKey.length != 32) throw RuntimeException("SecretKey length is not 32 chars")
val c = Cipher.getInstance("AES/CBC/PKCS5Padding")
val sk = SecretKeySpec(secretKey.toByteArray(Charsets.UTF_8), "AES")
val iv = IvParameterSpec(secretKey.substring(0, 16).toByteArray(Charsets.UTF_8))
c.init(operationMode, sk, iv)
return c
}
@DjangoLC
DjangoLC / Event.kt
Created December 1, 2020 17:21
Event and custom Observer for return the data only if have not been handle before
open class Event<out T>(private val content: T) {
var hasBeenHandled = false
private set // Allow external read but not write
/**
* Returns the content and prevents its use again.
*/
fun getContentIfNotHandled(): T? {
return if (hasBeenHandled) {
open class Event<out T>(private val content: T) {
var hasBeenHandled = false
private set // Allow external read but not write
/**
* Returns the content and prevents its use again.
*/
fun getContentIfNotHandled(): T? {
return if (hasBeenHandled) {
@DjangoLC
DjangoLC / LocationServiceImpl.kt
Created October 15, 2020 19:28
location service
package com.google.android.gms.location.sample.locationupdates
import android.annotation.SuppressLint
import android.app.Application
import android.location.Location
import android.os.Looper
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.google.android.gms.location.*
import com.google.android.gms.tasks.OnCompleteListener
@DjangoLC
DjangoLC / BaseUiModel.kt
Created September 25, 2020 18:47
BseUiModel
sealed class BaseUiModel<out T> {
object Loading : BaseUiModel<Nothing>()
class Success<T>(val data: T) : BaseUiModel<T>()
class Error(val error: String) : BaseUiModel<Nothing>()
class ErrorEx(val data: Exception) : BaseUiModel<Nothing>()
}