Skip to content

Instantly share code, notes, and snippets.

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

Eduardo José Medina Alfaro emedinaa

🏠
Working from home
View GitHub Profile
@Composable
fun Main(list: List<String>) {
var items by remember { mutableStateOf(list) }
LazyColumn {
items(items) { item ->
RowView(item) { str ->
val pos = items.indexOf(str)
Log.v(TAG, "pos $pos")
if(pos!= -1) {
@emedinaa
emedinaa / gist:789e97714c2fca45c0069a7e16a3a521
Last active December 6, 2023 16:21
Gradle configuration legacy library
build.gradle (app)
dependencies {
implementation 'androidx.core:core-ktx:1.8.0'
implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0')
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
implementation 'androidx.activity:activity-compose:1.5.1'
implementation platform('androidx.compose:compose-bom:2022.10.00')
implementation 'androidx.compose.ui:ui'
-keep class com.app.demo.model.* { *; }
-keep class com.app.demo.remote.SomeResponse { <fields>; }
-keep class com.app.demo.SomeEntity { *; }
-keep interface com.app.demo.SomeInterface { *; }
-keepclassmembers class com.app.demo.SomeClass {
public static ** Companion;
}
fun <T: ViewModel> T.createFactory() : ViewModelProvider.Factory {
val viewModel = this
@Suppress("UNCHECKED_CAST")
return object :ViewModelProvider.Factory{
override fun <T : ViewModel?> create(modelClass: Class<T>): T = viewModel as T
}
}
@emedinaa
emedinaa / NoteRemoteDataSource.kt
Created May 6, 2022 20:22
Retrofit + coroutines
override suspend fun notesByUser(
userId: String
): OperationResult<List<Note>> {
return try {
val response = serviceApi.notesByUser(userId)
val statusCode = response.code()
//200 300 400
if (response.isSuccessful) { //200
val body: NotesResponse? = response.body()
OperationResult.Success(body?.data?.map {
@emedinaa
emedinaa / gist:a6ce06404e4e84db1bc7cd1151499db7
Last active December 8, 2021 14:37
kotlin version conflicts
Error :
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
/Users/xx/.gradle/caches/transforms-2/files-2.1/5ddeaae6ee15f19826b9dd5f1cf7b0a4/jetified-kotlin-stdlib-jdk7-1.3.72.jar (version 1.3)
/Users/xx/.gradle/caches/transforms-2/files-2.1/3951109aac4671bfe341f4dc43e131ef/jetified-kotlin-stdlib-1.4.32.jar (version 1.4)
/Users/xx/.gradle/caches/transforms-2/files-2.1/1d67f6842b59bd1bd3d06c3bca4e4ac4/jetified-kotlin-stdlib-common-1.4.32.jar (version 1.4)
Inspect dependencies :
./gradlew :module:dependencies
@emedinaa
emedinaa / gist:0f6e72fd587fe9e5cb002eaca2064f09
Created November 23, 2021 20:49
Recyclerview remove element with swipe event
//view
private val itemTouchHelper =
ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
override fun onMove(
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder,
target: RecyclerView.ViewHolder
): Boolean = false
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
@emedinaa
emedinaa / gist:090e5014ad91097b7d51047cfe8422a3
Created November 14, 2021 03:12
Retrofit Post form URLEncoded (java)
//https://square.github.io/retrofit/
@FormUrlEncoded
@POST("endpoint/")
Call<LoginResponse> login(@Field("codigo_empresa") String username);
String username = user.getText().toString().trim();
Log.v("CONSOLE",username);
Call< LoginResponse > loginResponseCall = ApiClient.getUserService ( ).login ( username );
class LogInFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
//TODO events
binding.buttonLogIn.setOnClickListener {
if(validForm()) {
showMessage()
}
@emedinaa
emedinaa / gist:3ff7853a9fe49f57f43e14bc892fe981
Last active July 30, 2021 03:52
Mercado Pago - error gradle
Mercado pago :
implementation ('com.mercadopago.android.px:checkout:4.+')
https://github.com/mercadopago/px-android
Error:
Duplicate value for resource 'attr/labelVisibilityMode' with config 'DEFAULT' and product
Fix :
build.gradle