Skip to content

Instantly share code, notes, and snippets.

View aoriani's full-sized avatar

André Oriani aoriani

View GitHub Profile
@aoriani
aoriani / ByteBuddyMockLib.kt
Created December 25, 2023 03:13
A simple implementation of a mock library using ByteBuddy
package org.example
import net.bytebuddy.ByteBuddy
import net.bytebuddy.dynamic.DynamicType
import net.bytebuddy.implementation.FixedValue
import net.bytebuddy.matcher.ElementMatchers
import org.junit.jupiter.api.Test
import java.net.Socket
import kotlin.reflect.KFunction
import kotlin.reflect.jvm.javaMethod
@aoriani
aoriani / DynamicPersonClass.kt
Last active December 25, 2023 02:16
Shows how to dynamically implement a class Person using ByteBudy
package org.example
import net.bytebuddy.ByteBuddy
import net.bytebuddy.description.modifier.Visibility
import net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy
import net.bytebuddy.implementation.FieldAccessor
import net.bytebuddy.implementation.MethodCall
import net.bytebuddy.implementation.MethodDelegation
import net.bytebuddy.implementation.bind.annotation.FieldValue
import net.bytebuddy.matcher.ElementMatchers
@aoriani
aoriani / drawable_droid.xml
Created February 15, 2022 22:43
Droid using ShapeDrawable
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="3dp" android:height="20dp" android:left="10dp">
<rotate android:fromDegrees="-30">
<shape android:shape="rectangle">
<solid android:color="#3DDC84" />
<size android:width="48dp" android:height="24dp" />
<corners android:topLeftRadius="24dp" android:topRightRadius="24dp" />
</shape>
</rotate>
@aoriani
aoriani / CMakeLists.txt
Created March 5, 2019 09:07 — forked from patm1987/CMakeLists.txt
Fixing typo
cmake_minimum_required(VERSION 3.6.0)
add_library(native_app_glue STATIC
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c)
target_include_directories(native_app_glue PUBLIC
${ANDROID_NDK}/sources/android/native_app_glue)
find_library(log-lib
log)
@aoriani
aoriani / SimpleRetrofit.kt
Last active August 13, 2023 16:48
A simple implementation of a Retrofit-like library
import com.fasterxml.jackson.databind.DeserializationFeature
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import okhttp3.HttpUrl
import okhttp3.OkHttpClient
import okhttp3.Request
import java.lang.reflect.Method
import java.lang.reflect.ParameterizedType
import java.lang.reflect.Proxy
@aoriani
aoriani / SimpleMockitoTest.kt
Created April 15, 2018 04:05
A simple implementation of a mock library
import net.sf.cglib.proxy.Enhancer
import net.sf.cglib.proxy.MethodInterceptor
import net.sf.cglib.proxy.MethodProxy
import org.hamcrest.core.Is.`is`
import org.junit.Assert.assertThat
import org.junit.Test
import java.lang.reflect.Method
import java.net.Socket
inline fun <reified T> createMock(interceptor: MethodInterceptor) = Enhancer().apply {
@aoriani
aoriani / BusActivity.kt
Created March 31, 2018 03:57
A simple implementation of Event Bus using Kotlin
package io.aoriani.simplebutterknife
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.TextView
import kotlin.reflect.KClass
import kotlin.reflect.KFunction
import kotlin.reflect.full.declaredMemberFunctions
import kotlin.reflect.jvm.jvmErasure
@aoriani
aoriani / MainActivity.kt
Created March 29, 2018 20:26
A simple implementation of ButterKnife in Kotlin using reflection
package io.aoriani.simplebutterknife
import android.os.Bundle
import android.support.annotation.IdRes
import android.support.v7.app.AppCompatActivity
import android.view.View
import android.widget.Button
import android.widget.TextView
import kotlin.reflect.KMutableProperty1
import kotlin.reflect.full.declaredMemberProperties
@aoriani
aoriani / TintBindingAdapter.java
Created January 9, 2018 22:04
Binding adapter to tint ImageViews
@SuppressLint("NewApi")
@BindingAdapter("android:tint")
public static void setTintCompat(ImageView imageView, @ColorInt int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
imageView.setImageTintList(android.databinding.adapters.Converters.convertColorToColorStateList(color));
} else {
final Drawable originalDrawable = imageView.getDrawable();
if (originalDrawable instanceof VectorDrawableCompat) {
VectorDrawableCompat vectorDrawableCompat = (VectorDrawableCompat) originalDrawable;
vectorDrawableCompat.setTint(color);
@aoriani
aoriani / ViewController.swift
Created January 17, 2017 08:54
Small example of property animations Raw
//
// ViewController.swift
// Animations
//
// Created by Andre Oriani on 1/16/17.
// Copyright © 2017 Orion. All rights reserved.
//
import UIKit